oracle初学:赋予权限


终于开始学习oracle了,在电脑上成功安装了oracle9i

  今天学习的是oracle的权限管理

  首先在开始--》运行——》cmd,然后输入 sqlplus sys/密码 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;

  select * from user_tab_privs; //返回当前用户所有的对象权限

  对象权限可以控制到列

  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;


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3