大号在练葵花宝典 发表于 2024-7-24 16:19:44

Oracle权限管理

1.权限分类

Oracle权限允许用户访问属于其它用户的对象或执行程序,Oracle体系提供三种权限:Object 对象级、System 体系级、Role 角色级。
这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"
(用户public是oracle预界说的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有效户。
(1)体系权限:是指在体系级控制数据库的存取和使用的机制,即执行某种SQL语句的本领。
比方启动/停止数据库,修改数据库参数,连接数据库等权限。
体系权限是针对于用户设置的,用户必须被授予相应的体系权限,才能连接到数据库中举行想要的操作。
体系权限很多,此处说一下常见的权限
CREATE SESSION------连接数据库
CREATE TABLESPACE -----创建表空间
ALTER TABLESPACE ----修改表空间
DROP TABLESPACE -----删除表空间
CREATE USER ----- 创建用户
DROP USER ----- 修改用户
CREATE TABLE ----- 创建表
(2)对象权限:是指用户对数据库对象的操作权限。
数据库对象包括表,视图,序列和存储过程等。
表的对象权限有:ALTER【更改】,DELETE【删除】,EXECUTE【执行】,INDEX【索引】,INSERT【添加】,SELECT【查询】和UPDATE【革新】和ALL【所有】。
存储程序的对象权限有:EXECUTE和DEBUG两种,execute有检察和执行的权限, debug只有检察的权限
(3)角色权限:角色是可以授予用户的相干权限的组,该方法使权限的授予,撤回更加轻易管理
常用角色【内置角色】:
connect:登岸权限,拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
resource:开辟人员权限,拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
dba:管理员权限,拥有全部特权,是体系最高权限,只有DBA才可以创建数据库结构。
2.用户权限查询

--体系级权限
select * from dba_sys_privs;--查询所有效户的体系权限
select * from user_sys_privs;--查询当前用户的体系权限
select * from session_privs;--查本身拥有哪些体系权限
--对象级权限
select * from dba_tab_privs;--所有效户的对象级权限
select * from all_tab_privs;
select * from user_tab_privs;--当前用户的对象级权限
--查询用户拥有的角色
select * from dba_role_privs;--所有效户的角色
select * from user_role_privs;--当前用户的角色
--角色级权限
select * from role_sys_privs;--检察角色所包含的权限(只能检察登岸用户拥有的角色)
select * from role_sys_privs a where a.ROLE = 'CONNECT';
select * from role_sys_privs a where a.ROLE = 'RESOURCE';
3.权限授予

--体系权限
grant  体系权限1/体系权限2 to 用户; --- 赋予
--表
grant ALL/INSERT/DELETE/UPDATE/SELECT/ALTER on 用户B.表名 to 用户A;--- 赋予用户A户用于对于用户Bxxx表的xxx权限
grant INSERT/DELETE/UPDATE/SELECT/ALTER any table to 用户名; --赋予 xxx 用户对于任意表xxx权限
--存储过程
grant execute/debug on package/function/procedure to 用户;--execute有检察和执行的权限, debug只有检察的权限
grant execute/debug on sys.utl_http to perfreward;
grant execute/debug any procedure to perfreward;--一次把权限给完(过程、包、方法)
--角色
grant connect/resource/dba to 用户;
4.权限撤回

--体系权限
revoke 体系权限1/体系全选2 from 用户; ---收回
--表
revoke INSERT/DELETE/UPDATE/SELECT/ALTER on 用户B.表名 from 用户A; --- 收回用户A用于对于用户Bxxx表的xxx权限 
revoke INSERT/DELETE/UPDATE/SELECT/ALTER any table from 用户; -- 收回 xxx 用户对于任意表xxx权限
--存储过程
revoke execute/debug on package/function/procedure from 用户;
revoke execute/debug on sys.utl_http from perfreward;
revoke execute/debug any procedure from perfreward;--一次把权限给完(过程、包、方法)
--角色
revoke connect/resource/dba from 用户;

5.体系级别权限

表空间  
CREATE TABLESPACE   创建表空间;不管用户有何操作体系特权,经由Oracle把文件添加到操作体系中
ALTER TABLESPACE  改变表空间;不管用户有何操作体系特权,经由Oracle把文件添加到操作体系中
MANAGE TABLESPACE   使任何表空间脱机,使任何表空间联机,开始和结束对任何表空间的备份
DROP TABLESPACE   删除表空间
UNLIMITED TABLESPACE  使用任何没有数目限定的表空间。此特权忽略了所分配的任何详细定额。
假如被取消的话,被授权者的模式对象仍旧保留,但是进一步的表空间分配被拒绝,除非这一分配是详细的表空间定额允许的。此体系特权仅可以授予用户,而不授予角色。一样平常而言,应分配详细的表空间定额,而不授予此体系特权
用户   
CREATE ANY USER   创建用户;分配任意表空间上的定额,设置缺省和临时表空间,指定一个
环境资源文件(在CREATE USER 语句中)
BECOME ANY USER   成为另一个用户(这是任何一个执行完全数据库导入的用户所必要的)
ALTER USER  改变其他用户:修改任意用户的口令或验证方法,分配表空间定额,设置
缺省或临时表空间,在ALTER USER 语句中指定环境资源文件与缺省角色(不必改变自有口令)
DROP USER   删除另一个用户
角色   
CREATE ROLE   创建角色
ALTER ANY ROLE  改变数据库中的任何一个角色
DROP ANY ROLE   删除数据库中的任何一个角色
GRANT ANY ROLE  授权数据库中的任何一个角色

CREATE TABLE  在自有模式中创建表。还使被授权者能在自有模式下的表中创建索引,包
括那些用于完整性约束的索引(被授权者必须有表空间的定额或UNLIMITED TABLESPACE 特权)
CREATE ANY TABLE  在任何模式中创建表(假如被授权者有CREATE ANY TABLE 特权并在
另一个用户模式中创建了一张表,那么拥有者必须在那个表空间上有空间定额。表的拥有者不必具有CREAT TABLE 特权)
ALTER ANY TABLE   改变任何模式中的任何表并编译任何模式中的任何视图
BACKUP ANY TABLE  在任何模式中使用表的导出工具执行一个增量导出操作
DROP ANY TABLE  删除或截断任何模式中的任何表
LOCK ANY TABLE  锁定任何模式中的任何表或视图
特权  所能实现的操作
COMMENT ANY TABLE  对任何模式中的任何表、视图或列举行注释
SELECT ANY TABLE  对任何模式中的任何表、视图或快照举行查询
INSERT ANY TABLE  把行插入到任何模式中的任何表或视图中
UPDATE ANY TABLE  修改任何模式中的任何表或视图中的行
DELETE ANY TABLE  删除任何模式中的任何表或视图中的行
索引   
CREATE ANY INDEX  在任何表的任何模式中创建一条索引
ALTER ANY INDEX   改变数据库中的任何索引
DROP ANY INDEX  删除数据库中的任何索引
视图   
CREATE VIEW   在自有模式中创建视图
CREATE ANY VIEW   在任意模式中创建视图。要在另一个用户模式中创建视图,你必须具有CREATE ANY VIEW 特权,拥用者必须在该视图引用的对象上具有所需的特权
过程   
CREATE PROCEDURE  在自有模式中创建存储的过程、函数和包
CREATE ANY PROCEDURE  在任何模式中创建存储的过程、函数和包(这要求用户还要有ALTER ANY TABLE 、BACKUP ANY TA B LE 、DROP ANY TABLE 、SELECT ANY TABLE 、INSERT ANY TABLE 、UPDATE ANY TABLE 、DELETE ANY TABLE 或GRANT ANY TABLE 特权 
ALTER ANY PROCEDURE   编译任何模式中的任何存储的过程、函数或包
DROP ANY PROCEDURE  删除任何模式中的任何存储的过程、函数或包
EXECUTE ANY PROCEDURE   执行任何过程或函数(独立的或成组的),或在任何模式中引用任何包变量
DEBUG ANY PROCEDURE 检察界说任何存储程序
序列   
CREATE SEQUENCE   在自有模式中创建序列
CREATE ANY SEQUENCE   在任何模式中创建任何序列
ALTER ANY SEQUENCE  在任何模式中改变任何序列
DROP ANY SEQUENCE   在任何模式中删除任何序列
SELECT ANY SEQUENCE   在任何模式中引用任何序列
触发器  
CREATE TRIGGER  在自有模式中创建触发器
CREATE ANY TRIGGER  在任何模式中创建与任何模式的任何表相干的任何触发器
ALTER ANY TRIGGER   启用、停用或编译任何模式中的任何触发器
DROP ANY TRIGGER  删除任何模式中的任何触发器
同义词  
CREATE SYNONYM  在自有模式中创建同义词
CREATE ANY SYNONYM  在任何模式中创建任何同义词
DROP ANY SYNONYM  在任何模式中删除任何同义词
分析   
ANALYZE ANY   分析数据库中的任何表、簇或索引
审计   
AUDIT ANY   审计数据库中的任何模式对象
AUDIT SYSTEM  启用与停用语句和特权的审计选项
簇  
CREATE CLUSTER  在自有的模式中创建一个簇
CREATE ANY CLUSTER  在任何一个模式中创建一个簇;操作类似于CREATE ANY TABLE
ALTER ANY CLUSTER   改变数据库中的任何一个簇
DROP ANY CLUSTER  删除数据库中的任何一个簇
数据库  
ALTER DATA BASE   改变数据库;不管操作体系的特权,经由Oracle把文件添加到操作体系中
数据库链接  
CREATE DATABASE LINK  在自有模式中创建专用数据库链接
库  
CREATE LIBRARY  在自有模式中创建调出库
CREATE ANY LIBRARY  在任何模式中创建调出库
DROP LIBRARY  删除自有模式中的调出库
DROP ANY LIBRARY  删除任何模式中的调出库
特权   
GRANT ANY PRIVILEGE   授予任何体系特权(不包括对象特权)
环境资源文件   
CREATE PROFILE  创建环境资源文件
ALTER PROFILE   改变数据库中的任何环境资源文件
DROP PROFILE  删除数据库中的任何环境资源文件
ALTER RESOURCE COST   设置所有的用户会话中使用的资源开销
特权  所能实现的操作
公共数据库链接  
CREATE PUBLIC DATABASE LINK   创建公共数据库链接
DROP PUBLIC DATABASE LINK   删除公共数据库链接
公共同义词  
CREATE PUBLIC SYNONYM   创建公共同义词
DROP PUBLIC SYNONYM   删除公共同义词
回滚段  
CREATE ROLLBACK SEGMENT  创建回滚段
ALTER ROLLBACK SEGMENT  改变回滚段
DROP ROLLBACK SEGMENT   删除回滚段
会话   
CREATE SESSION  连接到数据库
ALTER SESSION   发出A LTER SESSION 语句
RESTRICTED SESSION  当数据库使用STARTUP RESTRICT 启动时举行连接(OSOPER与OSDBA角色包含此特权)
快照   
CREATE SNAPSHOT   在自有模式中创建快照(用户还必须具有C R E ATE TA B L E 特权)
CREATE  ANY SNAPSHOT  在任何模式中创建快照(用户还必须具有CREATE ANY TABLE特权)
ALTER SNAPSHOT  改变任何模式中的任何快照
DROP ANY SNAPSHOT   删除任何模式中的任何快照
体系   
ALTER SYSTEM  发出ALTER SYSTEM 语句
事务   
FORCE TRANSACTION   逼迫提交或回滚本地数据库中悬而未决的自有的分布式事务
FORCE ANY TRANSACTION   逼迫提交或回滚本地数据库中悬而未决的任何分布式事务

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Oracle权限管理