首页 > 数据库 >Oracle

Oracle

时间:2022-10-31 22:13:59浏览次数:47  
标签:SYNONYM GRANT hr 同义词 用户 Oracle PUBLIC

# 同义词(Synonym)是什么
可以把它理解为视图,都是对表的映射, 同义词不占用数据存储空间。
对于不同Schema下的表,可以映射为一个同义词。易于引用其他用户所拥有的表。还可以缩短冗长的表名和对象名。
<br><br>
# 同义词的分类
1. 公有同义词 Public Synonym
数据库中所有的用户都可以使用公用的同义词,公用的同义词往往用来表示一些比较常用的数据对象。

2. 私有同义词 Synonym
由创建它的用户所有。同义词的创建者可以通过授权控制其他用户是否有权访问属于自己对象的权限来使用私有同义词。
<br><br>


# 私有同义词

## 创建私有同义词
CREATE SYNONYM 同义词名 FOR 表名;
```
CREATE SYNONYM HR_EMP FOR hr.employees;
SELECT * FROM hr_emp;
```

## 给与用户创建同义词的权限
GRANT CREATE SYNONYM TO 用户名

```
SQL> show user;
USER is "SYS"
SQL> GRANT CREATE SYNONYM TO scott;
```

给与其他用户访问同义词对象的权限
GRANT SELECT, UPDATE ON 同义词对象名 TO 用户名
```
SCOTT用户下:
GRANT SELECT,UPDATE ON hr_emp2 TO hr;

HR用户下:
SELECT * FROM scott.hr_emp2;
```

## 删除同义词
DROP SYNONYM 同义词名;
```
DROP SYNONYM hr_emp2;
Output: Synonym HR_EMP2 dropped.
```
<br><br>


# 公有同义词

## 创建公有同义词
CREATE PUBLIC SYNONYM 同义词名 FOR 表名;

用户需要有CREATE PUBLIC SYNONYM的权限才能创建公有同义词。

```
sys用户:
GRANT CREATE PUBLIC SYNONYM TO HR;

hr用户:
CREATE PUBLIC SYNONYM HR_EMP FOR employees;
```

## 给予用户对于公有同义词对象的权限
GRANT 对象权限名 ON 公有同义词名 TO 用户;
实际上等于给予用户对于同义词指向对象的SELECT权限。
```
hr用户:
GRANT SELECT ON hr_emp TO LEO;

Leo用户:
SQL> SET LINESIZE 200
SQL> SET PAGESIZE 200
SQL> COL GRANTEE FOR a20;
SQL> COL OWNER FOR a20;
SQL> COL TABLE_NAME FOR a20;
SQL> COL PRIVILEGE FOR a20;
SQL> select grantee, owner, table_name, privilege
2 FROM user_tab_privs
3 WHERE grantee='LEO';

GRANTEE OWNER TABLE_NAME PRIVILEGE
-------------------- -------------------- -------------------- --------------------
LEO HR EMPLOYEES SELECT

```

## 删除公有同义词
DROP PUBLIC SYNONYM 同义词名;

需要有删除公有同义词的权限才能删除。(DROP PUBLIC SYNONYM)

```
SYS用户下:
GRANT DROP PUBLIC SYNONYM TO HR;


hr用户下:

DROP PUBLIC SYNONYM hr_emp;
```
<br><br>

# 公有同义词和私有同义词的不同
公有同义词可以直接通过同义词的名称进行访问。私有同义词需要加入用户名称才能访问。

标签:SYNONYM,GRANT,hr,同义词,用户,Oracle,PUBLIC
From: https://www.cnblogs.com/slqleozhang/p/16846011.html

相关文章

  • Oracle 19C学习 - 15. 同义词
    同义词(Synonym)是什么可以把它理解为视图,都是对表的映射,同义词不占用数据存储空间。对于不同Schema下的表,可以映射为一个同义词。易于引用其他用户所拥有的表。还可以缩......
  • oracle的length()、lengthb()、to_single_bye()函数
    length('张三')结果:2lengthb('张三')结果:4所以length返回长度为字符个数,lengthb返回长度为字节数to_single_byte():全角转半角函数 ......
  • windows 2003 oracle 10.2.0.4 升级迁移到linux 11.2.0.4
    文档课题:windows2003oracle10.2.0.4升级迁移到linux11.2.0.4源端:windows200332位+oracle10.2.0.432位+双实例目标端:centos7.964位+oracle11.2.0.464位应......
  • Oracle问题记录
    概述只稍微熟悉MySQL,但是不可避免会使用Oracle,此文记录Oracle使用问题。问题获取版本号​​SELECTversionFROMPRODUCT_COMPONENT_VERSIONWHEREproductLIKE'OracleDa......
  • Oracle 增删改(INSERT、DELETE、UPDATE)语句
    Ø  简介本文介绍 Oracle 中的增删改语句,即 INSERT、DELETE、UPDATE 语句的使用。是时候展现真正的技术了,快上车:插入数据(INSERT)修改数据(UPDATE)删除数据(DEL......
  • Oracle 12c、18c、19c CDB、PDB常用命令
    一、CDB、PDB常用管理命令查看PDB信息(在CDB模式下)showpdbs--查看所有pdbselectname,open_modefromv$pdbs为PDB信息视图selectcon_id,dbid,guid,name,open_mode......
  • 关于OCA(Oracle Contributor Agreement)的事情
    吾提交代码到jdk8u后,收到一个消息:必须是OCA才能被接受打开链接​​OracleContributorAgreementhttps://oca.opensource.oracle.com/​​选择公司或个人本公司不在列表中 ......
  • Oracle 19C学习 - 14. 约束
    什么是约束约束就是在表上强制执行的规则。约束可以防止存在相关性时产生误删除或者误操作。Oracle包括以下约束:NOTNULL非空约束,此列不允许有空值。UNIQUE唯一约......
  • 安装Oracle11
    安装oracle数据库​注意设置交换分区​关闭防火墙​systemctlstopNetworkManager&&systemctldisableNetworkManager​systemctlstopfirewalld&&systemctldisabl......
  • Oracle数据库主从复制
    主从复制​主从复制简介:​主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库,从数据库的作用和使用场合一般有几个:​一、作......