• 数据库安全之权限与角色


    权限的种类:系统权限 和 对象权限

    一、系统权限
    所谓系统权限,就是oracle里已经写死的权限,这些权限,我们是不能自己去扩展的,比如select any table, create any table等。

    1.1、系统权限种类
    select count(*) from dba_sys_privs;

    1.2、系统权限传递:
    增加WITH ADMIN OPTION选项,则得到的权限可以传递。
    grant XXX to XXX WITH ADMIN OPTION;

    1.3、系统权限回收:系统权限只能由DBA用户回收,统权限收回的时候是不会级联收回的。
    revoke XXX from XXX;

    1.4、查看用户拥有的系统权限。
    SQL> SELECT *
    2 FROM DBA_SYS_PRIVS
    3 WHERE GRANTEE = 'ANDY'
    4 UNION ALL
    5 SELECT *
    6 FROM DBA_SYS_PRIVS
    7 WHERE GRANTEE IN
    8 (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'ANDY');

    二、对象权限
    所谓对象权限,就是针对于特定的对象的权限,系统权限是限定了可以操作的功能,而object permission就更细化了,具体到了莫个对象你可以操作的功能的权限。

    2.1、对象权限种类
    select count(*) from dba_tab_privs;

    2.1、对象权限传递:
    增加with grant option选项,则得到的权限可以传递。
    grant XXX to XXX with grant option;

    2.2、对象权限回收:对象权限可以传递赋予,但是回收的时候是级联回收的。
    revoke XXX from XXX;

    2.4、查看用户拥有的对象权限。
    SQL> SELECT *
    2 FROM DBA_TAB_PRIVS
    3 WHERE GRANTEE = 'ANDY'
    4 UNION ALL
    5 SELECT *
    6 FROM DBA_TAB_PRIVS
    7 WHERE GRANTEE IN
    8 (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'ANDY');

    三、角色
    所谓角色,就是一组权限的集合。

    3.1、查看系统所有角色
    SQL> select * from dba_roles;

    3.2、 查看角色中包含的权限
    SQL> select * from role_sys_privs where role in ('RESOURCE');

    3.3、 创建角色并授权
    SQL> create role andy_role;
    Role created.

    SQL> grant connect,resource to andy_role;
    Grant succeeded.

    3.4、 查看用户所拥有的角色。 (用被查询用户登录)
    SQL> select * from USER_ROLE_PRIVS ;

  • 相关阅读:
    noexcept(c++11)
    右值引用和std::move函数(c++11)
    mint-ui 取值
    apicloud 注意事项
    倒计时
    获取第n天日期
    防止split没有切割的变量报错
    return
    时间戳转为日期
    echarts 中 请求后台改变数据
  • 原文地址:https://www.cnblogs.com/andy6/p/6265613.html
Copyright © 2020-2023  润新知