用户的增删改查
使用DM管理工具,或查询dba_users、sysusers数据字典可获取数据库用户信息。
select * from dba_users;
select * from sysusers;
创建用户前,规划用户的权限、用户下表/索引的存储位置、规划用户密码安全和资源管理。
create user testuser identified by "123456789" default tablespace TEST;
修改用户密码:
alter user testuser identified by "987654321";
修改用户默认表空间:
alter user testuser default tablespace DMHR;
修改用户登录资源限制:
alter user testuser limit failed_login_attemps 10 password_lock_time 5;
alter user testuser limit password_life_time 10 password_grace_time 5;
修改用户连接限制(允许登录时间、登录IP):
alter user testuser allow_datetime "MON" "8:30:00" to "FRI" "17:30:00";
alter user testuser allow_ip "192.168.1.*","127.0.0.1";
当用户连接数据库密码输入错误多次,系统会自动锁定用户,也可以手工执行命令锁定或解锁用户。
alter user testuser account unlock;
alter user testuser account lock;
删除用户需注意用户下的对象必须为空,如果不为空可选择级联删除用户及用户下所有对象。
drop user testuser cascade;
问题:
修改用户资源password_lock_time和password_grace_time出错
角色的创建,系统权限对象权限的赋予,角色禁用启用删除
使用DM管理工具或查询dba_roles数据字典可获取数据库角色信息。
select * from dba_roles
新建角色需指定角色名称,并指定该角色拥有的角色权限、对象权限、系统权限。
create role role1;
grant ALTER DATABASE to role1;
grant create table to role1;
角色分发是将角色的权限赋予给某个用户,或回收某用户该角色的权限。使用dba_role_privs可
以查询角色授予信息。
select * from dba_role_privs
grant role1 to testuser;
revoke role1 from testuser;
角色可禁用,一旦角色禁用,拥有该角色的用户对应的权限将不再可用。系统预定义角色不能禁用。
sp_set_role('ROLE1', 0);
sp_set_role('ROLE1', 1);
角色删除
drop role ROLE1 cascade;
权限管理
DM数据库权限包含两类:系统权限和对象权限。系统权限是指对数据库对象的创建、删除、修改等权限,对象权限是指对数据库对象中的数据的访问或对象执行权限。
dba_sys_privs记录用户/角色拥有的系统权限信息。dba_tab_privs记录用户/角色拥有的对象权限信息。
select * from dba_sys_privs
select * from dba_tab_privs
查看某用户/角色拥有的系统权限信息。
select * from dba_sys_privs t where T.GRANTEE = 'PUBLIC';
查看某个用户/角色拥有的对象权限信息。
select * from dba_tab_privs t where T.GRANTEE = 'SYSDBA'
赋予用户系统权限:
grant create table to testuser;
grant create view to testuser with admin option;
回收系统权限:
revoke create table from testuser;
revoke admin option for create view from testuser;
授予对象权限
grant select on dmhr.city to testuser;
撤销对象权限
revoke select on dmhr.city from testuser;