• Oracle数据库的权限管理(二)


    目录

    1.权限管理

    (1)系统权限

    (2)对象权限

    2.系统权限管理

    (1)系统权限的分类

    ①数据库维护权限及功能

    ②数据库模式对象权限

    ③ANY权限及功能

    (2)系统权限的授予

    ①首先在“超级管理连接”下新建一个用户

    ②授予权限

    ③系统权限的收回 

    (3)对象权限的管理

    ①对象权限分类

    ②对象权限授予

    ③对象权限收回

    (4)安全特性


    Oracle学习的相关知识点(汇总)

    提示:关于新用户的创建相关的操作请看上面链接里面的《Oracle数据库系统安全管理(一)

    1.权限管理

    为了使新建的用户可以进行基本的数据库操作,如登录数据库,查询表,创建和删除表等操作,那么需要给该新用户授予相关的权限。并且可以将授予给用户的权限收回。

    (1)系统权限

    系统权限是指在系统级控制数据库的存取和使用的机制,即执行某种SQL语句的能力。 例如,启动、停止数据库,修改数据库参数,连接到数据库,以及创建、删除、更改模式对 象(如表、视图、索引、过程等)等权限。 系统权限是针对用户而设置的,用户必须被授予相应的系统权限才可以连接到数据库中进行 相应的操作。 在Oracle 11g中,SYSTEM和SYS是数据库管理员,具有DBA所有的系统权限。

    (2)对象权限

    对象权限是指在对象级控制数据库的存取和使用的机制,即访问其他用户模式对象的能力。 例如,用户可以存取哪个用户模式中的哪个对象,能对该对象进行查询、插入、更新操作等。 对象权限一般是针对用户模式对象的。对象权限是用户之间的表、视图等模式对象的相互存取权限。例如, 以用户“SCOTT”登录到数据库,可以查询该用户模式中的XSB表。 图8.10所示。但是,如果以用户“SYS”登录数据库,则不可以查询XSB表,因为XSB表不属于SYS用户。

    2.系统权限管理

    (1)系统权限的分类

    --统计权限

    SELECT COUNT(*)

            FROM SYSTEM_PRIVILEGE_MAP;        

    --查看权限

    SELECT *

            FROM SYSTEM_PRIVILEGE_MAP;       

    提示:下面给出了一些权限的具体解释,只是方便看而已,读者也可以通过上面的语句在SQL PLus中查看。

    ①数据库维护权限及功能

    数据维护权限及功能
    系统权限功能
    ALTER DATABASE修改数据库的结构
    ALTER SYSTEM修改数据库系统的初始化参数
    DROP PUBULIC SYNONYM删除公共同义词
    CREATE PUBLIC SYSNONYM创建公共同义词
    CREATE PROFILE创建资源配置文件
    ALTER PROFILE更改资源配置文件
    DROP PROFILE删除资源配置文件
    CREATE ROLE创建角色
    ALTER ROLE修改角色
    DROP ROLE删除角色
    CREATE TABLESPACE创建表空间
    ALTER TABLESPACE修改表空间
    DROP TABLESPACE删除表空间
    MANAGE TABLESPACE管理表空间
    UNLMITED TABLESPACE不受配额限制的使用表空间
    CREATE SESSION创建会话,允许用户连接到数据库
    ALTER SESSION修改用户会话
    ALTER RESOURCE COST更改配置文件中计算资源消耗的方式
    RESTRICTED SESSION在数据库处于受限会话模式下连接到数据
    CREATE USER创建用户
    ALTER USER更改用户
    BECOME USER当执行完全装入时,成为另一个用户
    DROP USER删除用户
    SYSOPER

    STARTUP 启动数据库

    SHUTDOWN 关闭数据库

    ALTER DATABASE MOUNT/OPEN 

    ALTER DATABASE BACKUP CONTROFILE

    ALTER DATABASE BEGINJEBID BACKUP

    ALTER DATABASE ARCHIVELOG

    RECOVER DATABASE

    RESTRICTED SESSION

    CREATE SPFILE/PFILE

    SYSDBA(系统管理权限)

    SYSOPER(的所有权限)

    WITH ADMIN OPTION子句

    SELECT ANY DICTIONARY允许查询以“DBA”开头的数据字典

    关于

    STARTUP 启动数据库

    SHUTDOWN 关闭数据库

    ALTER DATABASE MOUNT/OPEN 

    可以看这篇文章:关于Oracle中的关闭和启动数据库的几种方式(五)

    ②数据库模式对象权限

    数据库模式对象权限
    系统权限功能
    create cluster在自己的模式中创建聚簇
    drop cluster删除自己模式中的聚簇
    create procedure在自己的模式中创建存储过程
    drop procedure在自己的模式中删除存储过程
    create database link创建数据库连接权限,通过数据库连接允许用户存取远程的数据库。
    drop datebase link删除数据库的连接
    create synonym创建私有同义词
    drop synonym删除同义词
    create sequence创建开发者所需的序列
    create trigger创建触发器
    drop trigger删除触发器
    create table创建表
    drop table删除表
    create view创建视图
    drop view删除视图
    create type创建对象

    ③ANY权限及功能

    系统中的ANY权限,表示可以在任何用户模式中进行操作。

    ANY权限及功能
    系统权限功能
    analyze any在任何模式中的任何表,聚簇或索引执行分析,查找其中的迁移记录和链接记录
    create any cluster在任何用户模式中创建聚簇
    alter any cluster在任何用户模式中修改聚簇
    drop any cluster在任何用户模式中删除聚簇
    create any index在数据库中任何表上创建索引
    alter any index在任何用户模式中更改索引
    drop any index在任何用户模式中删除索引
    create any procedure在任何用户模式中创建过程
    alter any procedure在任何用户模式中修改过程
    drop any proceduer在任何用户模式中删除过程
    execute any procedure在任何模式中执行或者引用过程
    grant any privilege将数据库中任何权限授予任何用户
    alter any role修改数据库中的任何角色
    drop any role删除数据库中的任何角色
    grant any role允许用户将数据库中的任何角色授予数据的其他用户
    create any sequence在任何模式中创建序列
    alter any sequence在任何模式中修改序列
    drop any sequence在任何模式中删除序列
    select any sequence允许使用任何模式中的序列
    create any table在任何模式中创建表
    alter any table在任何模式中更改表
    drop any table允许删除任何用户模式中的表
    commit any table在任何模式中为任何表,视图或者列添加注释
    select any table查询任何用户模式中基本表的记录
    insert any table允许向任何用户模式中的表插入记录
    update any table允许修改任何用户模式中的表记录
    delete any table允许删除任何用户模式中的表记录
    lock any table对任何用户模式中的表加锁
    flashback any table允许使用AS OF子句对任何模式中的表,视图执行一个SQL语句的闪回查询
    create any view在任何用户模式中创建视图
    create any trigger在任何用户模式中创建触发器
    alter any trigger在任何用户模式中修改触发器
    drop any trigger在任何用户模式中删除触发器
    administer database trigger允许ON DATABASE 触发器,在能够创建ON DATABASE 触发器之前,必须拥有CREATE TIRGGER 权限或者CREATE ANY TRIGGER权限。
    create any synonym在任何用户模式中创建专用同义词
    drop any synonym在任何用户模式中删除同义词

    (2)系统权限的授予

    GRANT <系统权限名称>TO {PUBLIC | <角色名> | <用户名>[,...N]}

            [WITH ADMIN OPTION]

    提示:

    这里的系统权限就是上面表中给出的一部分;

    WITH ADMIN OPTION表示指定用户可以将这些权限授予该其他的用户。

    ①首先在“超级管理连接”下新建一个用户

    用户名为:user1,密码为Admin123123,默认表空间为users,临时表空间为temp

    CREATE USER user1
        IDENTIFIED BY Admin123123
        DEFAULT TABLESPACE USERS
        TEMPORARY TABLESPACE TEMP;

    提示:上面新建的用户还没有授予什么权限,如果我们执行连接操作的话,那么系统会提示错误。

    ②授予权限

    提示:这里首先给该用户授予会话的权限,暂时做连接。

    GRANT CREATE SESSION TO user1; 

    会话授予成功之后,连接测试:

    现在授予该用户创建表和创建视图:

    GRANT CREATE ANY TABLE,CREATE ANY VIEW
        TO user1
        WITH ADMIN OPTION;

    create table demo(id int);

    如果我这里向创建的表中插入数据,是不能的,还没有授权插入数据。

    insert all
        into demo values(1)
        into demo values(2)
        into demo values(3)
        select * from dual;

    ③系统权限的收回 

    REVOKE <系统权限名>FROM {PUBLIC | <角色名> | <用户名>[,...N]}

    revoke create any table from user1;

    如果试图再去创建表的话:

    (3)对象权限的管理

    ①对象权限分类

    •  SELECT:读取表,视图,序列中的行;
    • UPDATE:更新表,视图和序列中的行;
    • DELETE:删除表,视图中的数据;
    • INSERT:向表和视图中插入数据;
    • EXECUTE:执行类型,函数,包和过程;
    • READ:读取数据字典中的数据;
    • INDEX:生成索引;
    • REFRENCES:生成外键;
    • ALTER:修改表,序列,同义词中的结构。

    ②对象权限授予

    GRANT {<对象权限名> | ALL [PRIVILEGE] [(<>[,...N])]}

            ON [用户方案名.]<对象权限名> TO {PUBLIC | <角色名>| <用户名>[,...N]}

            [WITH GRANT OPTION]

    例子:给用户下面的demo表授予权限查询,插入,更新和删除数据。

    GRANT SELECT,INSERT,UPDATE,DELETE

            ON demo

            TO user1

    ③对象权限收回

    REVOKE {<对象权限名> | ALL [PRIVILEGE] [(<>[,...N])]}

            ON [用户方案名.]<对象权限名> TO {PUBLIC | <角色名>| <用户名>[,...N]}

            [CASCADE CONSTRAINTS];

    (4)安全特性

    • 表安全
    • 视图安全
    • 过程安全
    • 类型安全

  • 相关阅读:
    “每周时事通讯:洞悉投资机会,把握市场脉搏 “
    基于Java毕业设计游泳馆管理平台源码+系统+mysql+lw文档+部署软件
    vue学习笔记21-组件传递数据_Props
    小白入门深度学习 | 6-6:Inception v3 算法原理
    CSS中主要定位方式
    Linux OpenLDAP配置ACL
    抽象工厂设计模式是什么?什么是 Abstract Factory 抽象工厂设计模式?Python 抽象工厂设计模式示例代码
    Android 图像显示系统 - 基础知识之 BitTube
    Transformer Fusion for Indoor RGB-D Semantic Segmentation
    区分何时使用内连接或者外连接
  • 原文地址:https://blog.csdn.net/Keep_Trying_Go/article/details/127111860