- 创建用户
create user 用户名
- 授予用户创建数据库权限
alter user 用户名 要给的权限
- 然后查看用户信息
\du 用户名
设置用户密码
没有口令不能登录
alter user 用户名 password ‘kingbase’;
修改用户的并发连接数
alter user 用户 connection limit 要设置的连接数;
修改用户的口令有效期
将用户密码设置为已过期
alter user 用户名 valid until '过去的任意日期';
将用户密码设置为永不过期
alter user 用户名 valid until 'infinity';
查看用户信息
\du 用户名
删除用户信息
删除有依赖的用户
先登录user01用户创建t01表,让user01有其他对象依赖
create table 表名(表字段名 类型);
切换system用户尝试删除有依赖的用户失败
drop user 用户名;
修改表的属主
alter table 表名 owner to 管理员用户;
去除依赖之后重新删除用户成功
drop user 用户名;
创建角色
create role 角色名 password '密码';
查看角色信息
\du 角色名
注意:角色默认无法登录,需要授予登陆权限
利用角色对多个用户批量授权
通常将角色当作多个同一类型用户的组,利用角色来批量管理用户权限,加入到角色的用户默认将自动继承该角色拥有的所有权限。
- 准备测试环境
- 创建t01表并插入1行数据
create table 表名 as select 插入的数据 as字段名 from dual;
- 创建role01角色
create role 角色名;
- 创建user01用户,使用选项INHERIT(继承)。
create user 用户名 password '密码' INHERIT;
- 创建user02用户,使用选项NOINHERIT(不继承)。
create user 用户名 password '密码' NOINHERIT;
- 测试用户有无对t01表的查询权限
当前user01和user02用户均没有查询t01表的权限
3.授予查询权限给角色
授予t01表的查询权限给role01角色名
grant 权限 on table 表名 to 角色名;
4.将用户加入到角色中
1.将user01用户和user02,有继承权限的直接继承角色权限
grant 角色名 to 用户1,用户2;
2.测试user01用户是否有查询t01表的权限(有权)
- 测试user02用户是否有查询t01表的权限(无权)