ORCLE数据库用户、权限、角色管理

  PS:中括号表示可选项。

ORACLE 用户管理

1.创建用户

CREATE USER username   --用户名

IDENTIFIED BY password --密码

[ACCOUNT LOCK|UNLOCK]  --表示用户是否锁定状态

[PASSWORD EXPIRE]      --表示密码在登录后马上失效

示例:CREATE USER test IDENTIFIED BY test ACCOUNT LOCK PASSWORD EXPIRE; (创建完成后并不能马上登录,需赋予session权限)

2.修改用户

ALTER USER username   --用户名

[IDENTIFIED BY password] --密码

[ACCOUNT LOCK|UNLOCK]  --表示用户是否锁定状态

[PASSWORD EXPIRE]      --表示密码在登录后马上失效

示例: ALTER USER test ACCOUNT UNLOCK;

3.删除用户

DROP USER name [CASCADE] --如果用户拥有数据库对象,就必须使用cascade关键字。

ORACLE 权限管理

1.权限的概念与作用  

  表示:权利的责任范围;系统中设置的安全规则或者安全策略。

2.权限的分类  

  1)系统权限:能否在数据库上完成某个动作;例如创建会话,创建表、查询任意表;  

  2)对象权限:能否在某个数据库对象上完成某种操作;例如:查询emp表,修改dept表。

3.权限的授予与回收   

  1)系统权限的授予     

     GRANT priv TO user|role      [WITH ADMIN OPTION];--是否可以级联授予。         

      示例:GRANT create session TO test WITH ADMIN OPTION;     

       授予用户创建会话的权限。--才能连接数据库。      此时test可以连接到数据库,同时也可以授权其他用户的会话权限。   

  2)系统权限的回收      

     REVOKE priv FORM user|role;

     示例:REVOKE create session FROM test;      PS:系统权限的授予有级联,回收却没有级联收回。

4.对象权限的授予与回收。   

  1)对象权限的授予:    

   GRANT priv [(col,...)] ON object TO user|role [WITH GRANT OPTION];   

  示例:用system用户创建了表 t(id)。    

   GRANT select,update(t) ON system.t to test2 with grant option;     然后用test2 登录后就可以查询和更新t表。    

   select * from system.t ;     

  2)对象权限的回收:     REVOKE priv[(col,...)] ON object FROM user|role;        

   示例:REVOKE update on system.t FROM tets2;    //回收update权限的时候,收回权限只能收回整个表的update权限。     注意:对象权限的回收是级联的,即如果此时test2已将权限再次分配给test1.那么test1的权限也会被收回。

ORACLE 角色管理

1.角色的概念与作用   

  本质上是权限的集合;用于简化权限的管理。

2.角色的创建于删除  

  1)角色创建: CREAET ROLE role;   

     示例:创建一个“员工”角色;     CREATE ROLE employee;

  2)删除角色: DROP ROLE role;     DROP REOLE  employee;   

3.角色上的权限授予与回收(与用户权限的授予与回收类似)

   1)系统权限的授予:   

    GRANT pirv TO role [WITH ADMIN OPTION];   

   示例:授予角色 创建session的权限。(所有与角色关联的用户都拥有该权限。)   

    GRANT create session TO employee with admin option;

   2)系统权限的回收:  

    REVOKE priv FROM role;  

    示例:回收角色 创建session的权限。(所有与角色关联的用户都失去该权限。)  

    REVOKE create session FROM employee;     

   3)对象权限的授予:  

   GRANT [priv(col...)] ON object TO role;  

   示例:将system的表t3的查询权限授予employee角色。   GRANT select ON system.t3 TO employee;    

  4)对象权限的回收:   REVOKE [priv(col...)] ON object FROM role;   示例:将system表t3的查询权限收回。  

   REVOKE select ON SYSTEM.T3 FROM employee;

4.用户与角色关联(用户上授予角色)  

   GRANT role TO user;  示例:将test1,test2关联角色employee;   

   GRANT employee TO test1,test2;  

  PS:经测试:如果在授予角色之前用户已登录,则需要重新登录后角色对应的权限才能生效。

5.用户与角色取消关联(用户上回收角色)

  REVOKE role FROM user;  示例:将用户test1,test2与角色employee取消关联。  

  PS:经测试:如果在回收角色之前用户已登录,则需要重新登录后角色对应的权限才能收回。

原文地址:https://www.cnblogs.com/YangFengHui/p/4640960.html