- 1. 控制用户权限
- 2. 目标通过本章学习,您将可以:
创建用户
创建角色
使用GRANT 和 REVOKE 语句赋予和回收权限
创建数据库联接
- 3. 控制用户权限数据库管理员用户用户名和密码
权限
- 4. 权限数据库安全性:
系统安全性
数据安全性
系统权限: 对于数据库的权限
对象权限: 操作数据库对象的权限
方案: 一组数据库对象集合, 例如表, 视图,和序列
- 5. 系统权限超过一百多种 100 有效的权限
数据库管理员具有高级权限以完成管理任务,例如:
创建新用户
删除用户
删除表
备份表
- 6. 创建用户DBA 使用 CREATE USER 语句创建用户CREATE USER scott
IDENTIFIED BY tiger;
User created.CREATE USER user
IDENTIFIED BY password;
- 7. 用户的系统权限用户创建之后, DBA 会赋予用户一些系统权限
以应用程序开发者为例, 一般具有下列系统权限:
CREATE SESSION(创建会话)
CREATE TABLE(创建表)
CREATE SEQUENCE(创建序列)
CREATE VIEW(创建视图)
CREATE PROCEDURE(创建过程)GRANT privilege [, privilege...]
TO user [, user| role, PUBLIC...];
- 8. 赋予系统权限 DBA 可以赋予用户特定的权限GRANT create session, create table,
create sequence, create view
TO scott;
Grant succeeded.
- 9. 角色不使用角色分配权限使用角色分配权限权限用户Manager
- 10. 创建角色并赋予权限CREATE ROLE manager;
Role created. GRANT create table, create view
TO manager;
Grant succeeded. GRANT manager TO DEHAAN, KOCHHAR;
Grant succeeded. 创建角色
为角色赋予权限
将角色赋予用户
- 11. 修改密码DBA 可以创建用户和修改密码
用户本人可以使用ALTER USER 语句修改密码ALTER USER scott
IDENTIFIED BY lion;
User altered.
- 12. 对象权限 表 视图 序列 过程
修改 Ö Ö
删除 Ö Ö
执行 Ö
索引 Ö
插入 Ö Ö
关联 Ö Ö
选择 Ö Ö Ö
更新 Ö Ö对象权限
- 13. 对象权限不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限 GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
- 14. 分配对象权限分配表 EMPLOYEES 的查询权限
分配表中各个列的更新权限
GRANT select
ON employees
TO sue, rich;
Grant succeeded.GRANT update (department_name, location_id)
ON departments
TO scott, manager
Grant succeeded.
- 15. WITH GRANT OPTION 和 PUBLIC 关键字WITH GRANT OPTION 使用户同样具有分配权限的权利
向数据库中所有用户分配权限
GRANT select, insert
ON departments
TO scott
WITH GRANT OPTION;
Grant succeeded.GRANT select
ON alice.departments
TO PUBLIC;
Grant succeeded.
- 16. 查询权限分配情况 数据字典视图 描述
ROLE_SYS_PRIVS 角色拥有的系统权限
ROLE_TAB_PRIVS 角色拥有的对象权限
USER_ROLE_PRIVS 用户拥有的角色
USER_TAB_PRIVS_MADE 用户分配的关于表对象权限
USER_TAB_PRIVS_RECD 用户拥有的关于表对象权限
USER_COL_PRIVS_MADE 用户分配的关于列的对象权限
USER_COL_PRIVS_RECD 用户拥有的关于列的对象权限
USER_SYS_PRIVS 用户拥有的系统权限
- 17. 收回对象权限使用 REVOKE 语句收回权限
使用 WITH GRANT OPTION 子句所分配的权限同样被收回REVOKE {privilege [, privilege...]|ALL}
ON object
FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];
- 18. 收回对象权限举例REVOKE select, insert
ON departments
FROM scott;
Revoke succeeded.
- 19. 数据库联接数据库联接使用户可以在本地访问远程数据库 本地数据库远程数据库SELECT * FROM emp@HQ_ACME.COM;HQ_ACME.COM
databaseEMP Table
- 20. 数据库联接创建数据库联接
使用SQL 语句访问远程数据库CREATE PUBLIC DATABASE LINK hq.acme.com
USING 'sales';
Database link created.SELECT *
FROM emp@HQ.ACME.COM;
- 21. 总结语句 功能
CREATE USER 创建用户 (通常由 DBA 完成)
GRANT 分配权限
CREATE ROLE 创建角色 (通常由 DBA 完成)
ALTER USER 修改用户密码
REVOKE 收回权限通过本章学习,您已经可以使用 DCL 控制数据库权限,
创建数据库联接:
- 22. (本页无文本内容)
- 23. (本页无文本内容)
- 24. (本页无文本内容)
- 25. (本页无文本内容)