Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space ML1 and version 5.3
Sv translation
languageen
Section
Column

Table of Contents
maxLevel1

Column
Panel

See also:

Migrating User Permissions

Replicating User Account Management Statements

Connecting to Xpand 

To connect to Xpand, use the mysql client to connect: 

shell> mysql -p db_name

By default, the MySQL client will use the current Unix user name to log in. To specify a different user, use the -u or --user option:

shell> mysql --user=clxm -p db_name

If you do not supply a password after the -p option, the client will prompt for one.

Creating and Managing Users

User information is stored in the system.users table in Xpand. To create users, issue the CREATE USER or GRANT commands, both of which require the CREATE USER privilege. Xpand does not permit blank usernames. 

sql> CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_passwd'; 
sql> GRANT INSERT on test.* to 'test_user'@'client1' IDENTIFIED BY'test_passwd';

To change a user's login password, use the SET PASSWORD command:

sql> SET PASSWORD FOR test_user = PASSWORD('new_passwd');

Use DROP USER to remove a user.

Anchor
sha2
sha2
SHA256 passwords

By default, passwords use mysql_native_password. To change an existing users’ password to use sha256 encryption:

sql> ALTER USER '[email protected]'%' IDENTIFIED WITH sha256_password BY 'foo';

To set it back to use mysql_native_password:

sql> ALTER USER 'seymour'@’%’ IDENTIFIED WITH mysql_native_password by 'foo';


Info

Users with a password encrypted with SHA256 must use encrypted connections and a client that supports SHA256 (mysql 5.7+) to connect to Xpand. If a secure connection is not available, the user will encounter an error and be unable to connect.

Granting Privileges

Xpand supports an access control system that is similar to that of MySQL. You can grant privileges globally (using ON *.* ), at the database level ( ON <dbname>.*), or at the table level (ON <dbname>.<tablename>).

To modify privileges, use the GRANT and REVOKE commands, which differ from their MySQL equivalents as follows:

  • column_list and object_type are ignored.
  • The ssl options cipher issuer and subject are not supported
Info

Xpand does not allow SYSTEM tables to be modified directly. Use SQL to modify users and privileges.

To display permissions, issue the SHOW GRANTS statement. For example, to list permissions for the current user:

sql> show grants;
+-------------------------------------------------------------+
| Grants for [email protected]                                  |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION | 
+-------------------------------------------------------------+

To show grants for a specific user:

sql> show grants for sergei;
+-------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                   |
+-------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'sergei'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0FXXXXXXXXXXXXX32313728C250DBF' | 
+-------------------------------------------------------------------------------------------------------+

For a full list of the supported and unsupported privileges, see User Privileges.

Securing Initial Xpand Accounts

Xpand creates an inital 'root'@'127.0.0.1' account. This is a superuser and if there is no password, any user can connect with no password and perform all operations. Xpand strongly recommends setting a root password.

To see which users may not have passwords:

sql> SELECT username, host, hex(password) from system.users;         

Default Users

As part of the installation process, by default Xpand creates the following user accounts:

UserPrivileges

'root'@'127.0.0.1'


'xpand'@'localhost'Runs the database process and is configurable as part of the installation. This user will not be created if Xpand is configured to run as root.
'xpandm'@'localhost'Used to manage the database and is configurable as part of the installation. Created with fewer privileges than clxd. This user will not be created if Xpand is configured to run as root. When using the Xpand AMI, this is 'clustrix'@'localhost'
'mysql_slave'Use by the Replication slave process. Login is not possible for this user regardless of whether a password is set.
'clx_maint'@'127.0.0.1'Used by Xpand Support and internal processes. 
'clx_view_definer'@'127.0.0.1'Used by Xpand Support and internal processes. 

These users must not be removed. 

Caveats for Managing Users

  • Xpand does not support:
    • DROP USER IF EXISTS
    • netmask notation for IP addresses
    • directly modifying the users table. 
  • Xpand allows usernames and hostnames to be up to 256 characters long and will truncate names longer than the permitted length. Xpand recommends that usernames be 16 characters or shorter and hostnames be 60 characters or shorter. 
Sv translation
languageko
Section
Column

Table of Contents

Column
Panel

See also:

Migrating User Permissions

Replicating User Account Management Statements

사전 구성된 사용자

ClustrixDB는 다음과 같이 미리 구성된 사용자와 함께 제공됩니다.

  1. clustrix_ui 사용자는 ClustrixGUI에서 내부적으로 사용됩니다.
  2. mysql_slave 사용자는 클러스터에서 동작하는 슬레이브 프로세스에 의해 사용됩니다.
Warning

미리 구성된 사용자는 변경하지 마십시오. 데이터베이스에서 지정되지 않은 동작이 발생할 수 있습니다.

기본 root 계정

ClustrixDB는 자동으로 root 사용자 계정을 만듭니다. 이 root 사용자는 [email protected]'%'로 어디서나 root 로그인이 가능합니다. 이것은 [email protected]를 만드는 MySQL과는 다릅니다.

Info

clustrix_clone_users를 사용하여 사용자를 가져오는 경우 root 사용자는 포함되지 않습니다.

MySQL과 ClustrixDB 간의 기본 root 사용자의 차이 때문에 트리거를(trigger) 가져올 때 문제가 발생할 수 있습니다. 트리거가 MySQL의 기본 [email protected] 사용자에 의해 생성된 경우 ClustrixDB로 트리거를 가져올 수 있지만 실행시 다음과 같은 오류와 함께 실패할 수 있습니다.

ERROR 1449 (HY000): [11309] The user specified as the definer for the trigger

이 오류는 트리거 정의가 DEFINER=`root`@`localhost`로 되어있지만 ClustrixDB는 이것을 [email protected]'%'사용자에 매핑하지 않기 때문에 발생합니다. 이 문제를 해결하는 가장 쉬운 방법은 ClustrixDB에 [email protected] 사용자를 생성하는 것입니다.

사용자 생성 및 관리

사용자 정보는 system.users 테이블에 저장됩니다 (MySQL의 mysql.user과는 다릅니다). 사용자를 생성하려면 CREATE USER 또는 GRANT 명령을 실행하십시오 (CREATE USER 권한이 필요합니다).

예:

sql> CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_passwd'; 
sql> GRANT INSERT on 'test'.* to 'test_user'@'client1' IDENTIFIED BY'test_passwd';

사용자 로그인 암호를 변경하려면 다음과 같이 SET PASSWORD 명령을 사용하십시오.

sql> SET PASSWORD FOR test_user = PASSWORD('new_passwd');

데이터베이스에서 사용자를 제거하려면 DROP USER 명령을 사용하십시오.

CIDR, 서브넷 마스크, SQL 와일드 카드 및 FQDN 한정자를 지정하여 ClustrixDB 사용자 이름을 한정할 수 있습니다.

예:

'user'@'10.21.2.0/24'
'user'@'10.21.0.0/16'
'user'@'10.0.0.0/255.0.0.0'
'user'@'10.21.2.0/255.255.255.0'
'user'@'10.21%'
'user'@'10.%'
'user'@'%.%.2.55'
'user'@'%.%.%.com'
'user'@'%.colo.%.%'
'user'@'client1.____.com'
'user'@'%.c%.%s.c__'
'user'@'client1.clustrix.com'
'user'@'10.21.2.64'


Note

ClustrixDB에서는 mysql.users 테이블을 사용하여 사용자 데이터를 생성하거나 수정할 수 없습니다.

권한 부여

ClustrixDB는 MySQL과 유사한 액세스 제어 시스템을 지원합니다. 데이터베이스 레벨 ( ON <dbname>.*) 또는 테이블 레벨 (ON <dbname>.<tablename>)에서 전역으로 권한을 (ON *.*를 사용) 부여할 수 있습니다.

권한을 변경하려면 GRANT 명령과 REVOKE 명령을 사용하십시오. 이 명령들은 MySQL의 같은 명령과는 다음과 같이 다릅니다.

  • column_listobject_type은 무시됩니다.
  • ssl 옵션 cipher issuersubject는 지원되지 않으며 구문 오류가 생성됩니다.

권한을 표시하려면 SHOW GRANTS 문을 사용하십시오. 예를 들어, 현재 사용자의 권한을 나열하려면 다음과 같이 하십시오.

sql> show grants;
+-------------------------------------------------------------+
| Grants for [email protected]                                  |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION | 
+-------------------------------------------------------------+
1 row in set (0.00 sec)

특정 개인의 권한을 나열하려면:

sql> show grants for sergei;
+-------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                   |
+-------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'sergei'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0FXXXXXXXXXXXXX32313728C250DBF' | 
+-------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

지원되는 권한

ClustrixDB은 다음의 권한을 지원합니다.

  • ALL [PRIVILEGES]: GRANT option을 제외한 모든 권한
  • ALTER: ALTER TABLE 사용 허용
  • CREATE: CREATE TABLECREATE DATABASE 허용
  • CREATE USER: CREATE USERDROP USER 허용
  • CREATE VIEW: CREATE VIEW 허용
  • DELETE: DELETE 허용
  • DROP: DROP TABLE, DROP DATABASEDROP VIEW 허용
  • GRANT OPTION: GRANT 허용
  • INDEX: CREATE INDEXDROP INDEX 허용
  • INSERT: INSERT 허용
  • REPLICATION CLIENT: SHOW MASTER STATUSSHOW SLAVE STATUS 허용
  • REPLICATION SLAVE: 바이너리 로그 읽기 허용
  • SELECT: SELECT 허용
  • SUPER: 관리 명령문 허용
  • UPDATE: UPDATE 허용
  • USAGE: login 허용

ClustrixDB는 다음의 권한을 무시합니다 (구문 오류는 없지만 명령은 아무런 효과가 없음).

  • ALTER ROUTINE
  • CREATE TEMPORARY TABLES
  • EXECUTE
  • FILE
  • LOCK TABLES
  • PROCESS
  • REFERENCES
  • RELOAD
  • SHOW DATABASES
  • SHOW VIEW
  • SHUTDOWN (requires SUPER Privilege)

ClustrixDB와 MySQL의 권한 섹션을 참조하십시오.