建立使用口令的角色,並分配給用戶

 

 

建立使用口令的角色,並分配給用戶sql

1.建立使用口令的角色session

CREATE ROLE role_nameoracle

[NOT IDENTIFIED(默認) | IDENTIFIED BY password | EXTERNALLY |GLOBALLY];ide

sql>create role manager identified by oracle;ui

2.建立後查看角色對象

SQL> select role,password_required,AUTHENTICATION_TYPE from dba_roles where role='MANAGER';blog

ROLE PASSWORD AUTHENTICATget

--------io

MANAGER YES PASSWORDrequire

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

權限啓用成功.

相關文章
相關標籤/搜索