用户定义
KingbaseES 分为三个管理员:数据库管理员、安全管理员和审计管理员
创建用户通过SQL语句CREATE USER进行
\h create user
修改用户通过SQL语句ALTER USER进行,可以修改用户的系统权限、名称、默认角色、口令和口令的有效期等
\h alter user
删除用户通过SQL语句DROP USER进行
\h drop user
删除一个数据库的用户并不删除数据库里此用户所有的表、视图或其他对象。如果删除的用户是操作系统认证的用户,
用户名要大写并且需要加双引号
DROP OWNED 命令可以删除当前数据库中属于该用户的所有对象和授予该用户的所有权限,但不能删除用户拥有的数据库。
REASSIGN OWNED 命令可以把对象的 OWNER 修改为其他用户。
查看用户账户信息
可以通过查询系统表或者系统视图进行。在KingbaseES中,对应为SYS_AUTHID系统表,以及视图SYS_SHADOW或者SYS_USER。
通过系统表SYS_AUTHID查询用户信息:
SELECT * FROM SYS_AUTHID WHERE ROLNAME LIKE 'US%';
通过系统视图SYS_SHADOW或者SYS_USER查询用户信息:
SELECT * FROM SYS_SHADOW WHERE USENAME LIKE 'US%';
SELECT * FROM SYS_USER WHERE USENAME LIKE 'US%';
查询当前用户信息
SELECT CURRENT_USER;
5. 权限与角色管理
角色是一组权限的集合,使用角色是让权限管理的工作更加简单有效
创建一个新的用户时,其默认角色为空,但是可以通过ALTER USER指定该用户的默认角色
系统权限是执行特定操作的权限。
一类是以用户或角色的属性存在的系统权限,这些权限包括:CREATE DATABASE、CREATE USER、CREATE ROLE 的权限,
具体分为 SUPERUSER、SSO、SAO、CREATEDB 和 CREATEROLE 五个系统权限。
一类是通过GRANT/REVOKE语句来授予和回收的系统权限
对象权限是对给定的用户授予在给定对象(例如表)上执行的操作集。 这些操作可以指明为 INSERT 、SELECT 等。
列级权限是对给定的用户授予在给定表或视图上某些列执行操作集。 此动作只能为INSERT、UPDATE和REFERENCES。
以用户或角色的属性存在的系统权限
这类权限是在创建用户和角色、或修改用户和角色时被授予或回收的,
主要包括 CREATE DATABASE、CREATE USER、CREATE ROLE,
具体分为SUPERUSER、SSO、SAO、CREATEDB 和 CREATEROLE 五个系统权限
5.3. 管理对象权限
对象权限是对给定的用户授予在给定对象(例如表)上执行的操作集。 这些操作可以指明为 INSERT 、SELECT 等
5.4. 管理用户角色
角色是一组权限的集合,使用角色是让权限管理的工作更加简单有效
PUBLIC 是一种特殊的角色,所有非安全员和非审计员用户默认具有 PUBLIC 角色上的权限
切换用户
切换当前会话用户 USER_SELECT_NO
SET SESSION AUTHORIZATION USER_SELECT_NO;