权限

  • 数据库安全性

--系统安全性

--数据安全性

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

系统权限

  • 超过一百多种有效的权限
  • 数据库管理员具有高级权限以完成管理任务,例如:
  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;

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

最新文章

  1. Android的编码规范
  2. java Servlet小结
  3. [原]centos6.5系统可用yum源(32位)以及rpmforge
  4. StringUtils方法全集
  5. 玩转正则之highlight高亮
  6. oracle RAC的VIP和scan
  7. 良精南方cms /inc/Check_Sql.asp SQL Injection Based On Cookie
  8. NET异常 在 getsockopt 或 setsockopt 调用中指定的一个未知的、无效的或不受支持的选项或层次。
  9. php--linux环境下的主从复制
  10. 【转】oracle connect by用法
  11. 基于SocketAsyncEventArgs的版本
  12. Mac上小巧实用的GIF格式录屏软件 LICEcap
  13. cocos2d-x3.0数据结构
  14. css雪碧图(css splite)
  15. socket和webService的区别
  16. 2018~试试idea~
  17. SP687 REPEATS - Repeats
  18. Ubuntu教程
  19. Redis备份及回收策略
  20. URAL 1277 - Cops and Thieves - [无向图点带权的最小点割]

热门文章

  1. 树莓派开机发送IP地址到邮箱
  2. Nginx Location指令URI匹配规则详解
  3. HAProxy的基础配置详解
  4. 常用Windows命令、常用 Cmd命令(补充)
  5. SpringCloud2.0 Hystrix Feign 基于Feign实现断路器 基础教程(七)
  6. 【 BowWow and the Timetable CodeForces - 1204A 】【思维】
  7. TabBar 设置可滚动:isScrollable: true
  8. oracle之随机数
  9. hbase与Hive的集成
  10. Game-Based Learning Is Changing How We Teach. Here's Why.