• 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:经测试:如果在回收角色之前用户已登录,则需要重新登录后角色对应的权限才能收回。

  • 相关阅读:
    第六周作业:《人月神话》对我做项目实践的启示(一)
    第五周作业:网站的初步设计
    关于做团队项目时需求分析工作中所学的一部分知识
    软件工程学生的编程能力与编程语言是中文或英文有关系吗?
    面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。
    当下大部分互联网创业公司为什么都愿意采用增量模型来做开发
    1+X Web前端开发(中级)理论考试样题(附答案)
    1+X Web前端开发(初级)理论考试样题(附答案)
    vi 和vim 的区别
    Linux查看日志三种命令
  • 原文地址:https://www.cnblogs.com/YangFengHui/p/4640960.html
Copyright © 2020-2023  润新知