sql大数据 基础(DCL 数据控制语言)

权限

数据库安全性:
系统安全性
数据安全性
系统权限: 对于数据库的权限
对象权限: 操作数据库对象的权限
方案: 一组数据库对象集合, 例如表, 视图,和序列

系统权限

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

创建用户

DBA 使用 CREATE USER 语句创建用户
CREATE USER user
IDENTIFIED BY password;

用户的系统权限

用户创建之后, 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 scott;

创建角色并赋予权限

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

修改密码

DBA 可以创建用户和修改密码
用户本人可以使用ALTER USER 语句修改密码
例:ALTER USER scott IDENTIFIED BY lion;

对象权限

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

分配对象权限

例:分配表EMPLOYEES 的查询权限
GRANT select
ON employees
TO sue, rich;

WITH GRANT OPTION 和 PUBLIC 关键字

WITH GRANT OPTION 使用户同样具有分配权限的权利
GRANT select, insert ON departments
TO scott
WITH GRANT OPTION;
向数据库中所有用户分配权限
GRANT select
ON alice.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 scott;

你可能感兴趣的:(数据库,sql,oracle,mysql)