• 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. (本页无文本内容)