[Oracle 学习笔记] 07 DCL

  DCL(Data Control Language)数据控制语言,用户对某类数据具有何种操作权限是有DBA决定。Oracle通过数据控制语言的GRANT语句完成权限授予操作,REVAKE 语句完成权限收回操作,权限的结果存入Oracle的数据字典中。 权限分为两类: 系统权限和对象权限

  系统权限

  是在数据库中执行某种特定操作的权利,系统权限并不针对某个特定的对象,而是针对整个数据库范围。常用的系统权限有:

  • CREATE SESSION  连接到数据库上
  • CREATE SEQUENCE   创建序列,序列是一系列数字,通常用来自动填充主键列
  • CREATE SYNONYM   创建同名对象
  • CREATE TABLE  创建表
  • CREATE ANY TABLE  在任何模式中创建表
  • DROP TABLE  删除表
  • DROP ANY TABLE    删除任何模式中的表
  • CREATE PROCEDURE 创建存储过程
  • EXECUTE ANY PROCEDURE  执行任何模式中的存储过程
  • CREATE USER  创建用户
  • DROP USER   删除用户
  • CREATE VIEW 创建视

 

  对象权限

  是针对特定的模式对象执行操作的权利,只能针对模式对象来设置和管理对象全新啊,这些对象包括 表、 视图、 存储过程 等常用的对象权限有:

  • SELECT  允许执行查询操作
  • INSERT  允许执行插入操作
  • UPDATE  允许执行修改操作
  • DELETE  允许执行删除操作
  • EXECUTE  语序执行存储过程

  用户

  CREATE USER user_name IDENTIFIED BY password [DEFAULT TABLESPACE tabspace_name] [TEMPORARY TABLESPACE tabspace_name];

  SQL> CONNECT system/1234

  SQL> CREATE USER wang IDENTIFIED BY office;

  因为用户wang还没有得到连接权限  所以使用wang登陆会出现错误

  SQL> CONNECT wang/office

  ERROR: ORA-01045: user WANG lacks CREAT SESSION privilege; logon denied

 

  权限控制

  SQL> GRANT CREATE SESSION, CREATE USER, CREATE TABLE TO wang;

 

  将CREATE SESSION 和 EXECUTE ANY PROCEDURE 授予所有用户

  SQL> GRANT CREATE SESSION, EXECUTE ANY PROCEDURE TO PUBLIC;

 

  回收权限

  REVOKE system_privileges FROM user_name;

  SQL> REVOKE CREATE TABLE FROM wang;

 

  查看权限

  查看数据字典中的user_sys_privs 系统权限     user_tab_privs_recd 对象权限

  SQL> SELECT * FROM user_sys_privs;

 

posted @ 2012-12-08 11:39  liangflying  阅读(1315)  评论(0编辑  收藏  举报