(一)权限
数据库安全性:
- 系统安全性
- 数据安全性
系统权限: 对于数据库的权限
对象权限: 操作数据库对象的权限
系统权限
超过一百多种有效的权限
数据库管理员(DBA)具有高级权限以完成管理任务,例如:
- 创建新用户
- 删除用户
- 删除表
- 备份表
(二)用户
1、创建用户
Oracle登录用户为system用户,system用户是一个DBA
DBA使用CREATE USER语句创建用户
CREATE USER user
IDENTIFIED BY password;
使用atguigu用户登录
缺少CREATE SESSION权限,无法登录,在下面会对其赋予权限
2、用户的系统权限
用户创建之后, DBA 会赋予用户一些系统权限
GRANT privilege [, privilege...]
TO user [, user | role, PUBLIC...];
以应用程序开发者为例, 一般具有下列系统权限:
- CREATE SESSION(创建会话)
- CREATE TABLE(创建表)
- CREATE SEQUENCE(创建序列)
- CREATE VIEW(创建视图)
- CREATE PROCEDURE(创建过程)
-- 授予atguigu用户CREATE SESSION权限
再次登录atguigu用户,登录成功
在atguigu用户中创建表
在system用户中给atguigu赋予创表权限
再次在atguigu用户中创建表
3、创建用户表空间
用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间用于创建的表
-- 为atguigu用户创建一个不限额的表空间
-- 为atguigu用户创建一个5M的表空间
4、修改密码
用户可以修改自己的密码
(三)角色
创建角色并赋予权限
创建角色
给角色赋予权限
将角色赋予用户
(四)对象
1、对象权限
- 不同的对象具有不同的对象权限
- 对象的拥有者拥有所有权限
- 对象的拥有者可以向外分配权限
2、分配对象权限
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
-- 将employees的select,update权限授予atguigu用户
在atguigu用户中查询employees表
3、WITH GRANT OPTION和PUBLIC关键字
WITH GRANT OPTION 使用户同样具有分配权限的权利
在system用户下完成以下命令
在atguigu用户中可以将此权限授予其他用户
PUBLIC向数据库中所有用户分配权限
在system用户下完成以下命令
则这个数据库中的用户都具有这两个权限
4、查询权限分配情况
-- 查询用户拥有的关于表对象权限
5、收回对象权限
- 使用 REVOKE 语句收回权限
- 使用 WITH GRANT OPTION 子句所分配的权限同样被收回
REVOKE {privilege [, privilege...]|ALL}
ON object FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];
-- 收回atguigu对于employees表的select权限
(五)总结
使用 DCL 控制数据库权限, 创建数据库联接: