Oracle系列十五 控制用户权限

权限

  • 数据库安全性

--系统安全性

--数据安全性

 

  • 系统权限: 对于数据库的权限
  • 对象权限: 操作数据库对象的权限

 

系统权限

  • 超过一百多种有效的权限
  • 数据库管理员具有高级权限以完成管理任务,例如:
  1. 创建新用户
  2. 删除用户
  3. 删除表
  4. 备份表

 

创建用户

DBA 使用 CREATE USER 语句创建用户

CREATE USER user                             
IDENTIFIED BY   password;

注:oracle 12c在结构上做出了调整,引入了CDB和PDB的概念,CDB中的操作,用sys默认登录的是CDB,但是如果想在CDB中创建用户(可以理解为公共用户)的话,那么必须在用户名前面加上“c##”,否则会报错:

正确写法:

 

用户的系统权限

用户创建之后, DBA 会赋予用户一些系统权限

GRANT privilege [, privilege...]            
TO user [, user| role, PUBLIC...];

以应用程序开发者为例, 一般具有下列系统权限:

  • CREATE SESSION(创建会话)
  • CREATE TABLE(创建表)
  • CREATE SEQUENCE(创建序列)
  • CREATE VIEW(创建视图)
  • CREATE PROCEDURE(创建过程)

DBA 可以赋予用户特定的权限

GRANT  create session, create table, 
       create sequence, create view
TO     c##loaderman;

 

创建用户表空间

  • 用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间用于创建的表
ALTER USER c##loaderman
    QUOTA UNLIMITED ON users;

角色

 

创建角色并赋予权限

  • 创建角色
CREATE ROLE c##manager;
  • 为角色赋予权限
GRANT create table, create view           
TO c##manager; 
  • 将角色赋予用户

 

GRANT c##manager TO c##loaderman;     

修改密码

  • DBA 可以创建用户和修改密码
  • 用户本人可以使用 ALTER USER 语句修改密码
ALTER USER c##loaderman                           
IDENTIFIED BY loaderman;

对象权限

  • 不同的对象具有不同的对象权限
  • 对象的拥有者拥有所有权限
  • 对象的拥有者可以向外分配权限
GRANT    object_priv [(columns)]
 ON        object
 TO        {user|role|PUBLIC}
 [WITH GRANT OPTION];

 

 

  • 分配对象权限
  • 分配表 EMPLOYEES 的查询权限





分配表中各个列的更新权限

GRANT  update
ON     system.departments
TO     c##loaderman

 

WITH GRANT OPTION和PUBLIC关键字

 

  • WITH GRANT OPTION 使用户同样具有分配权限的权利

 

GRANT  select, insert
ON     departments
TO     c##loaderman
WITH   GRANT OPTION;



向数据库中所有用户分配权限

GRANT  select
ON      system.departments
TO      PUBLIC;



查询权限分配情况


收回对象权限

  • 使用 REVOKE 语句收回权限
  • 使用 WITH GRANT OPTION 子句所分配的权限同样被收回
REVOKE {privilege [, privilege...]|ALL}
ON      object
FROM   {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];
REVOKE  select, insert
ON      departments
FROM    c##loaderman;

 使用新建的用户连接数据库:

















posted on 2019-11-28 19:56  LoaderMan  阅读(240)  评论(0编辑  收藏  举报

导航