oracle 好书 08( 用户,权限和角色管理 )
- 配置文件
profile: 用于控制用户密码策略,以及资源使用的配置信息。
- sysdba认证方式
如果要设置系统认证,就直接删除 sqlnet.ora 文件
drop user hsj
select sid, serial# from v$session where username = ‘HSJ’;
alter system kill session ‘145,41’;
drop user hsj cascade; // 该用户及其下所有的对象将全部被删除
- profile 与用户管理
dba_profiles 视图里存放了所有的有关密码和keneral的配置信息
- 权限管理
权限表示有个用户能否执行某种sql,或者访问某个对象等,分为系统权限和对象权限
-- 系统权限
所谓系统权限,指的是用户能够做什么事情的权限。比如创建一个表空间,创建表等
所有系统权限都在 system_privilege_map数据字典里
常用的系统权限有:
最大: sysdba , sysoper
restricted session: 在数据库以 restricted 模式打开时,也能登陆数据库
create any 开头的权限,创建某类对象
drop any 开头的权限,删除某类对象
create session, 表示用户能够连接到数据库实例并创建session
grant create session, create table to hsj;
revoke create session, create table from jsh;
alter user hsj quota 100M on users;
alter user hsj quota unlimited on example;
-- 对象权限
所谓对象权限,指的是用户能够对某个特定的对象做某种事情的权限。
grant select on employees to hsj;
grant any object privilege // 这个系统权限默认只有 sys 有,可以操作别的用户下的任何对象
grant select on hr.employees to hsj with grant option;
revoke select on employees from hsj;
- 角色管理
可以吧角色理解为一组权限的集合,并给该集合取了个名字,这个名字就是角色名。
角色赋给角色权限时,不能形成闭环,即 A->B, B->C, C->A 这样,系统会报错。
dba_roles 视图里看到很多角色
dba: 该角色具有大部分管理权限。
resource: 该角色具有很多 create 开头的权限, 例如 create table, create procedure.
create role my_role; // 创建角色
grant create session to my_role; // 给角色权限
grant my_role to hsj; // 将某个用户该角色
revoke my_role from hsj;