Chinaunix首页 | 论坛 | 博客
  • 博客访问: 613078
  • 博文数量: 152
  • 博客积分: 2684
  • 博客等级: 少校
  • 技术积分: 1126
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-29 11:03
文章分类
文章存档

2012年(6)

2011年(96)

2010年(50)

分类: Mysql/postgreSQL

2010-10-29 13:50:55

oracle grant 赋予权限?
                grant select on v_$mustat to tkyte;(使用户tkyte可以搜索表v$mystat)
 
终于开始学习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;
本文转载于:冰雪塵埃 的博客
阅读(1288) | 评论(0) | 转发(0) |
0

上一篇:PL/SQL Developer使用笔记

下一篇:oracle dbd

给主人留下些什么吧!~~