博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle分配权限 学习笔记--转载
阅读量:5893 次
发布时间:2019-06-19

本文共 2132 字,大约阅读时间需要 7 分钟。

在全局数据库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;

 

转载于:https://www.cnblogs.com/apaqi/archive/2012/09/10/2679433.html

你可能感兴趣的文章
HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
查看>>
nginx正则笔记
查看>>
delphi实现数字的倒计时
查看>>
在 IIS 下添加 FLV 类型文件的支持
查看>>
java线程学习3——线程的停止
查看>>
穿过任意防火墙NAT的远程控制软件TeamViewer
查看>>
PIX防火墙基本特性:失效处理机制和冗余-原理与实验
查看>>
域环境内部署Bginfo来统计用户计算机信息
查看>>
nagios短信报警(飞信fetion20080522004-linrh4)
查看>>
【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!...
查看>>
创建实体类使用Hibernate
查看>>
异常处理汇总-开发工具
查看>>
[LeetCode] Excel Sheet Column Number 求Excel表列序号
查看>>
通过浏览器直接打开Android应用程序
查看>>
MVC调用SVC无法找到资源解决问题
查看>>
div加jquery实现iframe标签的功能
查看>>
解决Yapi 插件运行不支持文件上传的问题解决
查看>>
Windows路由表详解
查看>>
MySQL从库记录binlog日志出错一例
查看>>
2015年度扯淡
查看>>