设为首页 收藏本站
查看: 923|回复: 0

[经验分享] oracle数据库用户角色简单测试

[复制链接]

尚未签到

发表于 2018-9-15 06:25:30 | 显示全部楼层 |阅读模式
  测试数据库角色role,使用set role命令启用角色,设置数据库用户的缺省角色
  创建角r1和r2,其中r2通过口令验证,我设置的口令是oracle
  SQL> conn system/oracle
  Connected.
  SQL> create role r1;
  Role created.

  SQL> create role r2>  Role created.
  给这两个角色授权,其中r2的权限包含r1的权限,也就是说r2的权限高一些
  SQL> grant create session,create table,create view to r1;
  Grant succeeded.
  SQL> grant create session,create table,create view,create procedure to r2;
  Grant succeeded.
  创建用户tj,并把两个角色授予用户,缺省情况下,当用户登陆时,两个角色都会生效。

  SQL> create user tj>  2  quota 10m on users;
  User created.
  SQL> grant r1,r2 to tj;
  Grant succeeded.
  SQL> conn tj/tj
  Connected.
  SQL> select * from session_privs;
  PRIVILEGE
  ------------------------------
  CREATE SESSION
  CREATE TABLE
  CREATE VIEW
  CREATE PROCEDURE
  SQL> select * from session_roles;
  ROLE
  --------------------------------------------
  R1
  R2
  修改tj用户的缺省角色,只让r1在登陆的时候生效
  SQL> conn system/oracle
  Connected.

  SQL>>
  User>  SQL> conn tj/tj
  Connected.
  SQL> select * from session_roles;
  ROLE
  ------------------------------------------------------------
  R1
  SQL> select * from session_privs;
  PRIVILEGE
  ------------------------------
  CREATE SESSION
  CREATE TABLE
  CREATE VIEW
  如果我们决定启用角色r2,需要使用set role命令,直接做是不可以的,因为角色r2需要通过口令来启用
  SQL> set role r2;
  set role r2
  *
  ERROR at line 1:
  ORA-01979: missing or invalid password for role 'R2'
  通过口令可以启动角色r2,但是这里要注意,当启用角色R2时,原来缺省的角色R1会失效,这也是我们为什么让R2包含R1权限的原因

  SQL> set role r2>  Role set.
  SQL>  select * from session_privs;
  PRIVILEGE
  ------------------------------
  CREATE SESSION
  CREATE TABLE
  CREATE VIEW
  CREATE PROCEDURE
  SQL> select * from session_roles;
  ROLE
  -------------------------------------------
  R2
  如果再次想让角色R1生效,直接使用set role命令就可以了,因为R1创建的时候没有指定口令。
  SQL> set role r1;
  Role set.
  SQL> select * from session_roles;
  ROLE
  ------------------------------------------------------------
  R1
  其实通过上面的小实验,我只是想说明,我们可以让一个用户使用一个较低权限(R1权限)工作,当需要时,通过口令使用户临时获得较高权限(R2权限)。
  oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-583042-1-1.html 上篇帖子: Oracle数据库备份恢复篇(二) 下篇帖子: ORACLE SEQUENCE-Oracle之路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表