oracle9i学习笔记之十二 控制用户访问

1.创建用户
  DBA用CREATE USER 语句创建用户
  CREATE USER user
  INDENTIFIED BY password;

  例:CREATE USER test IDENTIFIED BY clerk;

2.修改用户口令
  ALTER USER user
  IDENTIFIED BY password;

  例:ALTER USER test IDENTIFIED BY test;

3.授权
  GRANT privilege [,privilege...]
  TO    user[,user | role,PUBLIC...];
 
  例:GRANT create session,create table,create sequence,create view
      TO    test;
 
  注:应用程序的开发者,可能有下面的系统权限:
  -CREATE SESSION
  -CREATE TABLE
  -CREATE SEQUENCE
  -CREATE VIEW
  -CREATE PROCEDURE

4.创建角色
  CREATE ROLE manager;

5.授权给一个角色
  GRANT DROP ANY table,DROP ANY view
  TO    manager;

6.授一个角色给用户
  GRANT manager TO test;

7.关于角色的数据字典
  ROLE_SYS_PRIVS   ----授予给角色的系统权限  
  USER_ROLE_PRIVS  ----可由用户访问的角色
  ROLE_ROLE_PRIVS  ----授予角色的角色权限

8.对象权限
  对象权限        表      视图       序列        过程,函数,包
  ALTER           Y                   Y
  SELECT          Y        Y          Y
  DELETE          Y        Y       
  INSERT          Y        Y
  UPDATE          Y        Y    
  INDEX           Y      
  EXECUTE                                               Y

9.给对象授权
   GRANT    object_priv[(columns)]
   ON       object
   TO       {user|role|PUBLIC}
   [WITH GRANT OPTION];

   例1:给EMP表授予查询权
        GRANT select
        ON    emp
        TO    test;
   例2:授予列的更新权限到用户和角色
        GRANT update(sal,comm)
        ON    emp
        TO    test,manager;
   例3:给一个用户授权以级联权限授予
        GRANT select,insert
        ON    dept
        TO    test
        WITH  GRANT OPTION;
   例4:允许所有在系统上的用户从scott的dept表中查询数据
        GRANT  select
        ON     scott.dept
        TO     PUBLIC;

10.确认已授予的权限

   数据字典视图                      说明
   ROLE_SYS_PRIVS              授予角色的系统权限
   USER_SYS_PRIVS              授予用户的系统权限
   ROLE_ROLE_PRIVS             授予角色的角色权限
   USER_ROLE_PRIVS             可由用户访问的角色
   ROLE_TAB_PRIVS              授予角色的表权限
   USER_TAB_PRIVS              授予用户的对象权限
   USER_COL_PRIVS              授予用户在对象列上的权限

11.撤销对象权限
   REVOKE {privilege[,privilege...]|ALL}
   ON     object
   FROM   {user[,user...]|role|PUBLIC};
  
   注:通过WITH GRANT OPTION子句授予其他用户的权限也被撤消

   例:用户scott撤消在DEPT表上给予用户test的SELECT和INSERT权限
       REVOKE  select,insert
       ON      dept
       FROM    test;

12.撤消系统权限
   REVOKE {privilege[,privilege...]}
   FROM   user[,user|role,PUBLIC...]

   例:撤消test用户的create view系统权限
      REVOKE create view
      FROM   test;

13.创建数据库连接
   CREATE DATABASE LINK remote
   USING  'qqq';

14.写使用数据库连接的SQL语句
   SELECT * FROM emp@remote;

15.总结
  
   语句                       作用
   CREATE USER         创建用户(通常由DBA执行)
   ALTER USER          改变用户口令
   CREATE ROLE         创建一个权限的集合(通常由DBA执行)
   GRANT               给予其他用户权限来访问本用户的对象
   REVOKE              删除在用户对象上的权限
  


练习
1.创建用户soft,密码为yang
 
  CONN sys/sys@orcl as sysdba;

  CREATE USER soft IDENTIFIED BY yang;

2.修改用户soft的口令为soft

  ALTER USER soft IDENTIFIED BY soft;

3.授予soft用户登录权限、create table、create any view权限

  GRANT create session,create table,create any view
  TO    soft;

4.查看用户soft被授予的权限

   CONN soft/soft@orcl;

   SELECT *
   FROM   USER_SYS_PRIVS;

5.创建角色CLERK

   CONN sys as sysdba;
   password:sys
  
   CREATE ROLE clerk;

6.授予角色CLERK以下系统权限:alter any table、drop any view

   GRANT alter any table,drop any view TO clerk;

7.将角色clerk授予soft用户

   GRANT clerk TO soft;

8.查询所授予的角色

   CONN soft/soft@orcl;
 
   SELECT * FROM ROLE_SYS_PRIVS;
   SELECT * FROM USER_ROLE_PRIVS;

9.授予soft用户查询、更新(dname列)、插入scott用户的dept表的权限

   CONN scott/tiger@orcl;

   GRANT select,update(dname),insert
   ON    dept
   TO    soft;

10.soft用户插入、查询scott用户的dept表中数据

   CONN soft/soft@orcl;
   
   SELECT * FROM scott.dept;

   INSERT INTO scott.dept
   VALUES      (70,'coding','shenyang');

11.更新dept表中数据

   UPDATE scott.dept
   SET    dname='dep'
   WHERE  deptno=70;

12.scott用户将emp表的查询权限使用WITH GRANT OPTION授予soft用户,然后soft用户将该查询权限再授予test用户

   CONN scott/tiger@orcl;

   GRANT select ON emp
   TO    soft
   WITH GRANT OPTION;

   CONN sys/sys@orcl as sysdba;

   CREATE USER test IDENTIFIED BY test;

   CONN soft/soft@orcl;
     
   GRANT select ON scott.emp TO test;

13.在soft用户下创建视图dept_v,查询scott用户下的dept表

   CREATE OR REPLACE VIEW dept_v
   AS SELECT *
      FROM   scott.dept;

14.查看该视图信息

   DESC dept_v;
 
15.删除soft用户对于scott用户的dept表的select权限

   CONN scott/tiger@orcl;  

   REVOKE select ON dept
   FROM   soft;

16.查看soft用户的dept_v视图

   CONN sys/sys@orcl as sysdba;
   或:
   CONN soft/soft@orcl;

   DESC soft.dept_v;
   注:scott用户无法查看

17.删除soft用户CREATE TABLE的系统权限

   REVOKE create table
   FROM   soft;

18.删除用户soft
  
   DROP USER soft;
   GRANT select ON emp
   TO    soft
   WITH GRANT OPTION;

   CREATE USER test IDENTIFIED BY test;
   GRANT  create session  TO test;
   GRANT  select   ON   emp  TO test;

13.在soft用户下创建视图dept_v,查询scott用户下的dept表

   CREATE OR REPLACE VIEW dept_v
   AS SELECT *
      FROM   scott.dept_v;

14.查看该视图信息

   DESC dept_v;
 
15.删除soft用户对于scott用户的dept表的select权限

   REVOKE select ON scott.dept
   FROM   soft;

16.查看soft用户的dept_v视图

   DESC soft.dept_v;

17.删除soft用户CREATE TABLE的系统权限

   REVOKE create view
   FROM   soft;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值