本文档为 V2.0.7 版本起权限管理的 SQL 手册,详细功能使用可见权限管理,如需查阅 V2.0.7 版本之前权限管理的功能介绍可参考权限管理
CREATE USER <USERNAME> <PASSWORD> eg: CREATE USER user1 'Passwd@202604';
用户可以修改自己的密码,但修改其他用户密码需要具备 SECURITY 权限。
ALTER USER <USERNAME> SET PASSWORD <password> eg: ALTER USER tempuser SET PASSWORD 'Newpwd@202604';
DROP USER <USERNAME> eg: DROP USER user1;
CREATE ROLE <ROLENAME> eg: CREATE ROLE role1;
DROP ROLE <ROLENAME> eg: DROP ROLE role1;
GRANT ROLE <ROLENAME> TO <USERNAME> eg: GRANT ROLE admin TO user1;
REVOKE ROLE <ROLENAME> FROM <USERNAME> eg: REVOKE ROLE admin FROM user1;
LIST USER;
LIST ROLE;
LIST USER OF ROLE <ROLENAME> eg: LIST USER OF ROLE roleuser;
用户可以列出自己的角色,但列出其他用户的角色需要拥有 SECURITY 权限。
LIST ROLE OF USER <USERNAME> eg: LIST ROLE OF USER tempuser;
用户可以列出自己的权限信息,但列出其他用户的权限需要拥有 SECURITY 权限。
LIST PRIVILEGES OF USER <USERNAME> eg: LIST PRIVILEGES OF USER tempuser;
用户可以列出自己具有的角色的权限信息,列出其他角色的权限需要有 SECURITY 权限。
LIST PRIVILEGES OF ROLE <ROLENAME> eg: LIST PRIVILEGES OF ROLE actor;
GRANT SECURITY TO USER <USERNAME> eg: GRANT SECURITY TO USER TEST_USER;
GRANT CREATE ON DATABASE <DATABASE> TO USER <USERNAME> WITH GRANT OPTION eg: GRANT CREATE ON DATABASE TESTDB TO USER TEST_USER WITH GRANT OPTION;
GRANT SELECT ON DATABASE <DATABASE>TO ROLE <ROLENAME> eg: GRANT SELECT ON DATABASE TESTDB TO ROLE TEST_ROLE;
GRANT SELECT ON <DATABASE>.<TABLENAME> TO USER <USERNAME> eg: GRANT SELECT ON TESTDB.TESTTABLE TO USER TEST_USER;
GRANT SELECT ON ANY TO ROLE <ROLENAME> eg: GRANT SELECT ON ANY TO ROLE TEST_ROLE;
GRANT ALL TO USER TESTUSER; -- 将用户可以获取的所有权限授予给用户,包括全局权限和 ANY 范围的所有数据权限 GRANT ALL ON ANY TO USER TESTUSER; -- 将 ANY 范围内可以获取的所有权限授予给用户,执行该语句后,用户将拥有在所有数据库上的所有数据权限 GRANT ALL ON DATABASE TESTDB TO USER TESTUSER; -- 将 DB 范围内可以获取的所有权限授予给用户,执行该语句后,用户将拥有在该数据库上的所有数据权限 GRANT ALL ON TABLE TESTTABLE TO USER TESTUSER; -- 将 TABLE 范围内可以获取的所有权限授予给用户,执行该语句后,用户将拥有在该表上的所有数据权限
REVOKE SECURITY FROM USER <USERNAME> eg: REVOKE SECURITY FROM USER TEST_USER;
REVOKE CREATE ON DATABASE <DATABASE> FROM USER <USERNAME> eg: REVOKE CREATE ON DATABASE TEST_DB FROM USER TEST_USER;
REVOKE SELECT ON <DATABASE>.<TABLENAME> FROM USER <USERNAME> eg: REVOKE SELECT ON TESTDB.TESTTABLE FROM USER TEST_USER;
REVOKE SELECT ON ANY FROM USER <USERNAME> eg: REVOKE SELECT ON ANY FROM USER TEST_USER;
REVOKE ALL FROM USER TESTUSER; -- 取消用户所有的全局权限以及 ANY 范围的所有数据权限 REVOKE ALL ON ANY FROM USER TESTUSER; -- 取消用户 ANY 范围的所有数据权限,不会影响 DB 范围和 TABLE 范围的权限 REVOKE ALL ON DATABASE TESTDB FROM USER TESTUSER; -- 取消用户在 DB 上的所有数据权限,不会影响 TABLE 权限 REVOKE ALL ON TABLE TESTDB FROM USER TESTUSER; -- 取消用户在 TABLE 上的所有数据权限
LIST PRIVILEGES OF USER <USERNAME> eg: LIST PRIVILEGES OF USER tempuser