Oracle 权限管理学习

select * from dba_synonyms  //查询,*代表返回数据库所有的字段
//授权创建同义词的权限给hrpuser用户
grant create any synonym to hrpuser
//删除公用同义词EF_COST_WBWORKNUMDATA
drop public synonym EF_COST_WBWORKNUMDATA
//为ythis用户的EF_IF_V_optTYPE表创建公用同义词EF_IF_V_optTYPE。
create public synonym EF_IF_V_optTYPE for ytis. EF_IF_V_optTYPE
//表权限
//给与hrpuser用户,EF_IF_V_optTYPE表的查询权限

grant select on EF_IF_V_optTYPE to hrpuser

首先连接到托管Oracle的服务器,然后以SYSTEM帐户身份连接到Oracle本身。

该SYSTEM帐户是安装Oracle时自动生成的少数预定义管理帐户之一。 SYSTEM能够执行大多数管理任务,我们就看看帐户管理。

创建用户

连接后SYSTEM,只需发出CREATE USER命令即可生成新帐户。

create books_admin(用户名) books(表明) identified by 123456(密码) 

在这里,我们只是创建一个由指定的books_admin帐户进行IDENTIFIED身份验证的帐户password。

授权语句

books_admin创建新帐户后,我们现在可以开始使用该GRANT语句向帐户添加权限。 GRANT是一个非常强大的语句,有许多可能的选项,但核心功能是管理两个users和roles整个数据库的权限。

提供角色

通常,您首先要通过将帐户附加到各种角色来为用户分配权限,从角色开始CONNECT:

grant CONNECT(角色名称) TO books_admin(用户名);

在某些情况下,为了创建更强大的用户,您还可以考虑添加RESOURCE角色(允许用户为自定义模式创建命名类型)甚至DBA角色,这允许用户不仅创建自定义命名类型,还可以更改和销毁它们同样。

grant CONNECT, RESOURCE, DBA to books_admin(用户名);

分配权限

接下来,您需要确保用户具有实际连接到数据库并使用【创建会话的权限】grant create session。我们还将它与【所有权限】结合使用grant any privileges。

grant create session  to books_admin;//授予books_admin用户创建session的权限,即登陆权限
grant any privilege to books_admin(用户名);

我们还需要确保我们的新用户在系统中分配了磁盘空间来实际创建或修改表和数据,所以我们会grant tablespace这样:

//授予用户使用表空间的权限
grant unlimited tablespace to books_admin(用户名)

表权限

虽然在较新版本的Oracle中通常不需要,但某些较旧的安装可能要求您手动指定新用户对特定架构和数据库表的访问权限。

举例来说,如果我们希望我们的books_admin用户有执行能力SELECT,UPDATE,INSERT,和DELETE在功能books表中,我们可以执行以下GRANT语句:

grant select,insert,update,delete on books to books_admin

grant create table to zhangsan;//授予创建表的权限
 
grante drop table to zhangsan;//授予删除表的权限
 
grant insert table to zhangsan;//插入表的权限
 
grant update table to zhangsan;//修改表的权限
 
grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)
 

oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权

grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限

grant drop on tablename to zhangsan;//授予删除表的权限
 
grant insert on tablename to zhangsan;//授予插入的权限
 
grant update on tablename to zhangsan;//授予修改表的权限
 
grant insert(id) on tablename to zhangsan;
 
grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update
 
grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限

撤销权限

基本语法同grant,关键字为revoke

查看权限

select * from user_sys_privs;//查看当前用户所有权限
 
select * from user_tab_privs;//查看所用用户对表的权限

操作表的用户的表

select * from zhangsan.tablename

角色

角色即权限的集合,可以把一个角色授予给用户

create role myrole;//创建角色

grant create session to myrole;//将创建session的权限授予myrole
 
grant myrole to zhangsan;//授予zhangsan用户myrole的角色
 
drop role myrole; //删除角色
 

权限传递

即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:

grant alert table on tablename to zhangsan with admin option;//关键字 with admin option
 
grant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似

同义词(synonyms)

Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.

在Oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对数据库进行操作的,但是我们必须要已授权的表的名称前,键入该表所有者的名称,所以这就是比较麻烦的,遇到这种情况,我们该怎么办呢?创建个Oracle同义词吧!这样我们就可以直接使用同义词来使用表了。

在 user1 下 有表 table1,现在 user2 要使用 table1

grant select on table1 to user2;
select * from  user1.table1 ;
create public synonym table1 for user1.table1
select * from table1; //不需要键入该表所有者的名称
同义词的概念

Oracle数据库中提供了同义词管理的功能。同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。

与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、序列、存储过程、包等等,数据库管理员都可以根据实际情况为他们定义同义词。

Oracle同义词的分类

Oracle同义词有两种类型,分别是公用public同义词私有同义词

1)公用Oracle同义词:

由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。

2)私有Oracle同义词:

它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词

创建同义词

1)创建公有Oracle同义词的语法:

create [public] synonym 同义词名称 for [username.]objectName;

create public synonym table_name for user.table_name;

2)创建一个远程数据库的对象的同义词

如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词:create synonym table_name for table_name@DB_Link;

同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。

学习参考

oracle 用户创建及权限设置 和 同义词

Oracle同义词(synonyms)的概念作用、创建删除查看及Oracle的db link

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容