当前位置:   article > 正文

dba 权限_【Oracle】控制用户权限

dba权限

51f7774059c9d929cca7c096aec08fd7.gif

权限

  • 数据库安全性

--系统安全性

--数据安全性

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

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

系统权限

  • 超过一百多种有效的权限

  • 数据库管理员具有高级权限以完成管理任务,例如:

  1. 创建新用户

  2. 删除用户

  3. 删除表

  4. 备份表

创建用户

DBA 使用 CREATE USER 语句创建用户

CREATE USER user                             IDENTIFIED BY   password;

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

ceaa2f720c10823a6d7d277c8608644e.png

正确写法:

dc41028aca148aaaeb2e34a04f5b020b.png

用户的系统权限

用户创建之后, 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 viewTO     c##loaderman;

94cb195da18cd1dd7cf95911b8125a24.png

创建用户表空间

  • 用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间用于创建的表

ALTER USER c##loaderman    QUOTA UNLIMITED ON users;

8bb21719d71fec6212236df7e096546c.png

角色

5f313210a40581705d138f78402a1a35.png

创建角色并赋予权限

  • 创建角色

CREATE ROLE c##manager;
  • 为角色赋予权限

GRANT create table, create view           TO c##manager;
  • 将角色赋予用户

GRANT c##manager TO c##loaderman;

修改密码

  • DBA 可以创建用户和修改密码

  • 用户本人可以使用 ALTER USER 语句修改密码

ALTER USER c##loadermanIDENTIFIED BY loaderman;

e4fa244e0c22919b6fb77e37baae3af8.png

对象权限

6f69923aefefdf7326ea97f41bdc86cc.png

  • 不同的对象具有不同的对象权限

  • 对象的拥有者拥有所有权限

  • 对象的拥有者可以向外分配权限

GRANT    object_priv [(columns)] ON        object TO        {user|role|PUBLIC} [WITH GRANT OPTION];
  • 分配对象权限

  • 分配表 EMPLOYEES 的查询权限

4822ea35a97969ee6671031d9617229d.png分配表中各个列的更新权限

GRANT  updateON     system.departmentsTO     c##loaderman

WITH GRANT OPTION和PUBLIC关键字

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

GRANT  select, insertON     departmentsTO     c##loadermanWITH   GRANT OPTION;

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

GRANT  selectON      system.departmentsTO      PUBLIC;
查询权限分配情况收回对象权限
  • 使用 REVOKE 语句收回权限

  • 使用 WITH GRANT OPTION 子句所分配的权限同样被收回

REVOKE {privilege [, privilege...]|ALL}ON      objectFROM   {user[, user...]|role|PUBLIC}[CASCADE CONSTRAINTS];REVOKE  select, insertON      departmentsFROM    c##loaderman;

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

e71ac687eadae5b68a74c51dd3fff6c3.png

  码上加油站

  一起来加油

长按扫码关注

2389f5b8d1349a04debedcbdc722ad7a.png 记得点个 在看 哦!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/985283
推荐阅读
相关标签
  

闽ICP备14008679号