[oracle] oracle权限传递
三个用户:SYS、lisi、wangwu
① 系统权限的传递
lisi的初始化系统权限
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
LISI CREATE SESSION NO
LISI CREATE TABLE NO
LISI UNLIMITED TABLESPACE NO wangwu的初始化系统权限
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
WANGWU CREATE TABLE NO
WANGWU CREATE SESSION NO
WANGWU UNLIMITED TABLESPACE NO
现在SYS将修改任意表的系统权限赋予lisi
SQL> grant alter any table to lisi;
授权成功。
现在lisi的系统权限变为
SQL> select * from user_sys_privs; USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
LISI CREATE SESSION NO
LISI ALTER ANY TABLE NO
LISI CREATE TABLE NO
LISI UNLIMITED TABLESPACE NO
注意此时新增项的ADM为NO
现在我们将修改任意表的权限由lisi赋予给wangwu
SQL> grant alter any table to wangwu;
grant alter any table to wangwu
*
第 1 行出现错误:
ORA-01031: 权限不足
表明这样是无法级联授权的,SYS用户在授予lisi权限的时候需要给予管理选项
SYS:
SQL> grant alter any table to lisi with admin option;
授权成功。
lisi:
SQL> select * from user_sys_privs; USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
LISI CREATE SESSION NO
LISI ALTER ANY TABLE YES
LISI CREATE TABLE NO
LISI UNLIMITED TABLESPACE NO
这时ALTER ANY TABLE一行的ADM是yes,再将权限由lisi赋予给wangwu
SQL> grant alter any table to wangwu;
授权成功。
这时wangwu还能将该权限赋予其他的用户吗?答案是NO
wangwu:
SQL> select * from user_sys_privs; USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
WANGWU CREATE TABLE NO
WANGWU CREATE SESSION NO
WANGWU ALTER ANY TABLE NO
WANGWU UNLIMITED TABLESPACE NO
如果需要wangwu也有授予的功能,则lisi授权时需要再加上with admin option
② 对象权限的传递
SYS用户新建一个表obj并将查询的权限赋予lisi
SQL> create table obj(id int);
表已创建。 SQL> grant select on obj to lisi;
授权成功。
lisi查看自己的对象权限
SQL> set linesize 400
SQL> select * from user_tab_privs; GRANTEE LISI
OWNER SYS
TABLE_NAME OBJ
GRANTOR SYS
PRIVILEGE SELECT
GRA NO
HIE NO
将对象权限赋予wangwu需要SYS赋予lisi级联权限
SQL> grant select on obj to lisi with grant option;
授权成功。
wangwu:
SQL> select * from user_tab_privs; GRANTEE WANGWU
OWNER SYS
TABLE_NAME USER_OBJECTS
GRANTOR LISI
PRIVILEGE SELECT
GRA NO
HIE NO
同样的,如果需要wangwu也有授予的功能,则lisi授权时需要再加上with grant option。
[oracle] oracle权限传递的更多相关文章
- Oracle基础学习4--Oracle权限传递
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wang379275614/article/details/32215325 以下将用一个实例来解说: ...
- Oracle 用户权限管理方法
Oracle 用户权限管理方法 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最 ...
- Oracle用户权限分配
一.权限分类 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理 1.系统权限分类: ...
- oracle用户权限
权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...
- oracle数据库权限管理
权限管理: oracle 9里面默认的三个username和password: sys change_on_install //权限最高的管理员 system manager //普通的管理员 sco ...
- java 实现往oracle存储过程中传递array数组类型的参数
注:本文来源于 < java 实现往oracle存储过程中传递array数组类型的参数 >最近项目中遇到通过往存储过程传递数组参数的问题, 浪费了N多个小时,终于有点头绪. 具体的代码 ...
- oracle 用户 权限
一. 概述 与权限,角色相关的视图大概有下面这些: DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 当前用户所拥有的系统权限 SESSION_PRIVS ...
- Oracle管理监控之Oracle用户权限
数据字典 1.动态数据字典是以v$xxx开始的数据字典,在数据库中约有150个左右,这些数据字典反映数据库动态运行状况,在不同时间查询会得到不同的结果. 2.DBA数据字典是以DBA_xxx表示,该数 ...
- Oracle用户权限及死锁
Oracle用户权限表 oracle数据库中涉及到用户权限的三个表,dba_users,all_users,user_users有什么区别 dba_开头的是查全库所有的,all_开头的是查当前用户可以 ...
- [oracle] 系统权限管理
1 利用超级用户连接到数据库登录 sqlplus / as sysdba or slqplus SYS/SYSPWD as sysdba 这两个命令的效果是一样的,都是以sysdba的身份使得SYS管 ...
随机推荐
- Jmeter --- 逻辑控制之if控制器
一.背景 在实际工作中,当使用Jmeter做性能脚本或者接口脚本时,有可能会遇到需要对不同的条件做不同的操作,基于这种诉求,在Jmeter中可使用if控制器来实现 二.实际操作 逻辑控制器位置: 在线 ...
- pycurl 学习笔记--getinfo 函数
通过 pycurl.Curl 对象的 getinfo 函数,可以获取到响应的如下信息: (参考: http://curl.haxx.se/libcurl/c/curl_easy_getinfo.htm ...
- Android 弹出有确认按键的对话
//弹出对话框-------------------------------------------------- private void openDialog(String strMsg, Str ...
- Linux 配置rdate时间服务器方法
配置多台服务器时,经常需要让各个服务器之间的时间保持同步,如果服务器有外网环境,可以直接同外部的时间服务器更新时间,可以采用rdate命令更新时间: rdate -s tick.greyware.co ...
- (三)RocketMq入门之独立线程处理业务
一.示例代码 这段代码实现了一个独立线程监听在一个特殊的消息队列上,一旦收到消息就处理并发送给MQ,然后推送给所有的消费者. import com.alibaba.rocketmq.client.ex ...
- tp查询范围
一.查询范围 //说明username和password是对应模型下的 scopeUsername($query) 和scopePassword($query)方法 //关键字scope 在控制器如 ...
- linux shell 删除指定文件夹下面 名称不包含指定字符的文件
find /app/jenkins/jenkins/jobs/scam/* ! -name config.xml | xargs rm -rf 删除/app/jenkins/jenkins/jobs/ ...
- MongoDB查询指定字段(field)返回指定字段的方法
使用MongoDB的时候需要只查询指定的字段进行返回,也就是类似mysql里面的 SELECT id,name,age 这样而不是SELECT *.在MongoDB里面映射(projection)声明 ...
- 枚举操作的常用方法,包括获得枚举的value,name,description
public enum SendInfoStateEnum { [Description("等待提交")] 等待提交 = 1, [Description(& ...
- AI落地企业业务的一些问题
这两年大家都在喊未来已来,软件企业不管有没有算法工程师都竖起了AI的大旗,传统企业不管现在OA现状如何都想在数据转型.智能制造.机器智能方面尝尝鲜,感觉好像和前两年的互联网+风潮有点像,最近半年我在某 ...