
小余
V1
2023/02/12阅读:23主题:科技蓝
oracle权限管理
权限分类
系统权限
数据库级别执行某些操作或针对某一类对象执行某种操作权限 如授权和回收
oracle数据库中有200多种系统权限
对象权限
对某个特定的数据库对象执行某种操作的权限,如增删改查
共有9种对象权限
对象权限 | 适合对象 | 说明 |
---|---|---|
select | 表、视图、序列 | 查询数据权限 |
update | 表、视图 | 更新 |
delete | 表、视图 | 删除 |
insert | 表、视图 | 插入 |
references | 表 | 在其他表中创建外键时可以引用这个表 |
execute | 存储过程、函数、包 | 执行pl/sql存储过程、函数、包 |
read | 目录 | 读取目录 |
alter | 表、序列 | 修改表、序列 |
index | 表 | 为表创建序列 |
all | 所有 | 所有 |
权限控制
查看系统权限
select * from system_privilege_map;
查看human用户的系统权限
select * from user_sys_privs where username='human';
系统权限
授予权限
grant 权限 to 人|组|共有 [with amdmin option 系统权限有传递性]
为user1授予create session,create table,create index系统权限。之后用user1为user2授予create table权限
grant create session,create table,create index to user1 with admin option;
connect user1/user1 @ human_resource;
grant create table to user2;
回收权限
revoke 权限 from 人
回收user1的create table,create view 权限
revoke create table,create view from user1;
1.多个管理员给用户授予同一个权限后,如果其中一个管理回收该权限,则该用户不在拥有对应权限
2.回收用户权限的传递性:先回收其系统权限在授权。
3.如果一个用户获得的系统权限具有传递性,并且授予给了其他用户,那么该用户权限被回收后,其他用户权限不受影响。
对象权限
授予权限
grant 权限|all on 模式.表 to 人 [with grant option];
在human模式下的employees表的select、update、insert权限授予给user1后,user1在将select和update权限授予给user2
grant select,update,insert on human.employees to user1 with admin optin;
connect user1/user1@ human_resouce
grant select,update on human.employees to user2;
回收权限
revoke 权限|all on 模式.表 from 人;
回收user1用户在human.employees表的select、update权限
revoke select,update on human.employees from user1;
注意事项和系统权限1,2一样
3.该用户对象权限收回后,其他用户的对象权限也被收回。
角色
所谓角色是一系列相关权限的集合
系统预定义角色
角色 | 权限 |
---|---|
connect | create session |
dba | 所有系统权限且带有with admin option |
exp_full_database | 很大 |
imp_full_database | 包括数据库导入所需要的权限和角色 |
resource | create系列的很多权限 |
查询角色权限
查询当前数据库所有预定义角色
select * from dba_roles;
查询各个预定义(某个)
select * from dba_sys_privs (where grantee='');
查询角色
select * from role_sys_privs where role='...';
自定义角色
创建角色
create role name [not identified用于指定该角色由数据库授权,使角色生效不需要口令]
[identified by password 用于设置角色生效时的口令]
角色授权和回收
和用户一样
grant和revoke
修改角色
修改角色生效和失效的方式 给high_tiger_role 添加口令取消middle_tiger_role的口令
alter role high_tiger_role identified by highrole;
alter role middle_tiger_role not identified;
删除角色
drop role 角色;
激活和屏蔽
屏蔽用户的所有角色
alter user 用户 default role none;
激活用户的某些角色
alter user 用户 default role 角色1,角色2;
激活所有角色(除了xx)
alter user 用户 default role all(except 角色)
作者介绍

小余
V1