重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6120|回复: 1
打印 上一主题 下一主题

创建使用口令的角色,并分配给用户

[复制链接]
跳转到指定楼层
楼主
发表于 2012-8-14 21:31:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

创建使用口令的角色,并分配给用户

1.创建使用口令的角色
   CREATE ROLE role_name
       [NOT IDENTIFIED(默认) | IDENTIFIED BY password | EXTERNALLY |GLOBALLY];

   sql>create role manager identified by oracle;


2.创建后查看角色
SQL> select role,password_required,AUTHENTICATION_TYPE from dba_roles where role='MANAGER';

ROLE                           PASSWORD AUTHENTICAT
------------------------------ -------- -----------
MANAGER                        YES      PASSWORD

 

3.赋予系统权限
 
  SQL> GRANT CREATE TABLE,CREATE VIEW,CREATE SESSION TO manager WITH ADMIN OPTION;
 
              Grant succeeded.
 
4.赋予对象权限
  SQL> GRANT SELECT ,INSERT ,UPDATE ON hr.employees TO manager;
              Grant succeeded.


5.查看角色的系统权限(role_sys_privs)
  SQL> SELECT * FROM role_sys_privs WHERE role = 'MANAGER';
 
ROLE                           PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
MANAGER                        CREATE SESSION                           YES
MANAGER                        CREATE TABLE                             YES
MANAGER                        CREATE VIEW                              YES
             
6.查看角色的对象权限(role_tab_privs)
  SQL> SELECT * FROM role_tab_privs WHERE role = 'MANAGER';


ROLE       OWNER      TABLE_NAME COLUMN_NAME          PRIVILEGE       GRA
---------- ---------- ---------- -------------------- --------------- ---
MANAGER    HR         EMPLOYEES                       UPDATE          NO
MANAGER    HR         EMPLOYEES                       INSERT          NO
MANAGER    HR         EMPLOYEES                       SELECT          NO

 

6.创建用户
  sql>create user sztech identified by sztech;

7.将角色赋予用户(grant):
  语法:
       GRANT role_name [, role_name, ...]
             TO user_name | role | PUBLIC [, user_name | role | PUBLIC, ...]
       [WITH ADMIN OPTION];
      
       sql>GRANT manager TO sztech;

8.查看角色授予了哪些用户(dba_role_privs)
  SQL> SELECT * FROM dba_role_privs WHERE granted_role = 'MANAGER';

GRANTEE    GRANTED_ROLE         ADM DEF
---------- -------------------- --- ---
SYS        MANAGER              YES YES
SZTECH     MANAGER              NO  YES


9.以sztech用户登陆系统
 
SQL> conn sztech/sztech
ERROR:
ORA-01045: user SZTECH lacks CREATE SESSION privilege; logon denied

这个时候,无法登陆系统,权限无效

10.单独授予创建session的权限给sztech
   sql>grant connect to sztech;

SELECT * FROM dba_role_privs WHERE grantee = 'SZTECH';

11.查看获得的权限
SQL> SELECT * FROM dba_role_privs WHERE grantee = 'SZTECH';

GRANTEE    GRANTED_ROLE         ADM DEF
---------- -------------------- --- ---
SZTECH     CONNECT              NO  NO
SZTECH     MANAGER              NO  YES

12.设置默认角色
   sql>ALTER USER sztech DEFAULT ROLE all;

 再次查看默认权限
 SQL> SELECT * FROM dba_role_privs WHERE grantee = 'SZTECH';

GRANTEE    GRANTED_ROLE         ADM DEF
---------- -------------------- --- ---
SZTECH     CONNECT              NO  YES
SZTECH     MANAGER              NO  YES

 


13.查看用户拥有哪些权限
  SQL> CONN sztech/sztech;
SQL> select * from session_privs;

PRIVILEGE
---------------
CREATE SESSION

  目前看,权限只有connect中的权限,而manger中的权限没有,需要单独激活.

14.激活角色
SQL> set role connect,manager identified by oracle;

 

   注意,这里角色manager有口令,所以,需要identified by oracle.

15.查看当前用户sztech权限
   SQL> select * from session_privs;

PRIVILEGE
---------------
CREATE SESSION
CREATE TABLE
CREATE VIEW

   权限启用成功.


   

 

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2013-6-16 11:02:00 | 只看该作者
顶一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-5 16:14 , Processed in 0.083154 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

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