zoukankan      html  css  js  c++  java
  • oracle分配权限 学习笔记--转载

    在全局数据库ORCL下创建一个用户
    首先在开始--》运行——》sqlplus,然后输入 sys/change_on_install as sysdba 
    以sys权限登陆进去 
    然后可以进行操作: 
    创建用户 create user test indentified by test; 
    这样就创建了一个用户名密码都为test的用户 
    但这个时候test还是不能登陆成功的,我们需要赋予相应的权限 
    首先赋予create session的权限 
    grant create session to test; 
    这样test用户就能成功登陆进去 
    但是此时用户还是不能创建表 我们需要赋予用户创建表的权限: 
    grant create table to test; 
    但是用户此时还不能创建表 因为需要有使用表空间的权限(相当于 用户有了进房间的钥匙 但是没有进大门的钥匙) 
    所以也应该赋予相应的权限 
    grant unlimited tablespace to test; 
    这个时候用户就拥有了创建表的权限 由于表是用户test的 相应的他就拥有了对创建的表的增删查改的权限了 
    我们要查看用户拥有什么权限可以通过查询一个系统的视图(数字字典) 
    select * from user_sys_privs; 
    这样就可以知道当前用户的权限

    撤销权限 revoke create table from test;

    场景: 
    用户test   用户test1 
    test1的用户创建了个表mytab 并且插入了一些数据 
    那么 test用户是否可以访问到test1的mytab怎么访问? 
    答:不可以,必须先授权 
    test1必须授权给test :grant select on mytab to test; 
    那么这个时候test可以通过 select * from test1.mytab;来访问mytab中的数据 
    如果想把某个表(对象)的所有权限都赋予给test那么可以: 
    grant all on mytab to test; 
    撤销所有权限 
    revoke all on mytab to test;


    总结 
    对于系统权限由sys来做 
    对于对象权限由 谁拥有谁授权 
    系统权限: 
       grant create session to test; 
       grant create table to test; 
       grant unlimited tablespace to test;

       revoke create session from test; 
       revoke create table from test; 
       revoke unlimited tablespase from test;

       grant create session to public;  //表示把创建表的权限赋予所有人

       select * from user_sys_privs;  //返回当前用户的所有系统权限

       grant select on mytab to test; 
       grant all on mytab to test;

       revoke select on mytab from test; 
       revoke all on mytab from test;

        
       对象权限可以控制到列 (更新和插入操作)
       grant update(name) on mytab to test; 
       grant insert(id) on mytab to test;

       select * from user_col_privs; 
       注意:查询和删除不能控制到列    
       需要有commit的 insert update insert

      权限的传递 
      系统权限的传递: 
      grant alter table to A with admin option; 
      那么A可以通过把该权限传递给B,如果想B也可以传递下去那么可以也带上with admin option 
      grant alter table to B; 
      对象权限的传递: 
      grant select on mytab to A with grant option; 
      那么A可以把在表mytab的select权限赋予给B,如果B想也能传递该select权限也可以带上with grant option 
      grant select on mytab to B;

    ----------------------------------------------------------------------------------------------------------

    --创建用户
    create user keeltest identified by keeltest;
    --分配权限
    grant create session,create table,create view ,create any index to keeltest;
    grant unlimited tablespace to keeltest;

  • 相关阅读:
    JavaSE第十五天20160823
    JavaSE第十四天20160822
    JavaSE第十三天20160819
    pojo和javabean的比较
    JavaSE第十二天20160818
    JavaSE第十一天20160817
    修正MyEclipse的SpellChecking
    JavaSE第十天20160816
    JavaSE第九天20160815
    Servlet中的init()方法如何才会在服务器启动时执行
  • 原文地址:https://www.cnblogs.com/likeju/p/4987601.html
Copyright © 2011-2022 走看看