CREATE SYNONYM注意事项创建同义词时,需要给出同义词链接的对象。 创建同义词时,需要同义词对象存在。 同义词的对象支持表、函数和视图,其它会提示对象不存在。 创建同义词后,同义词对象如果删除或更改,同义词展开时将报错。 可以通过系统视图MY_SYNONYMS、ADM_SYNONYMS查看同义词。 执行该语句的用户需要有CREATE SYNONYM、CREATE ANY SYNONYM或者ALL PRIVILEGES的系统权限,普通用户不可以创建系统用户对象。 指定PUBLIC同义词并且给出同义词schema,检查不一致报错处理。 创建PUBLIC同义词时需拥有CREATE PUBLIC SYNONYM系统权限,否则会报错。
语法格式CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema_name. ]synonym_name FOR [ schema_name. ]object_name 参数说明OR REPLACE 创建同义词时,若同义词存在则更新。 [ schema_name. ] 用户名。不指定时默认是当前登录用户。 PUBLIC 创建public用户的同义词,其他用户不需要授权直接访问同义词,但同义词对象权限仍然做检查。 创建普通用户同义词,可以和public用户中同义词同名。 synonym_name 同义词,参见数据库对象名规范。 object_name 同义词对象,参见数据库对象名规范,一个表/视图对应的同义词数量不做约束。 表示视图和表名。
示例为视图privilege_view创建一个PUBLIC用户同义词和一个普通用户同义词。 --删除表privilege。
DROP TABLE IF EXISTS privilege; --创建表privilege。
CREATE TABLE privilege(staff_id INT PRIMARY KEY, privilege_name VARCHAR(64) NOT NULL, privilege_description VARCHAR(64), privilege_approver VARCHAR(10)); --创建视图privilege_view,若该视图存在则更新该视图。
CREATE OR REPLACE VIEW privilege_view AS SELECT staff_id, privilege_name from privilege; --为视图privilege_view创建一个PUBLIC用户同义词。
CREATE OR REPLACE PUBLIC SYNONYM pri_vi for privilege_view;
--为视图privilege_view创建一个普通用户同义词。
CREATE OR REPLACE SYNONYM pri_vi for privilege_view; 为表privilege创建一个PUBLIC用户同义词和一个普通用户同义词。 --为表privilege创建一个PUBLIC用户同义词。
CREATE OR REPLACE PUBLIC SYNONYM pri for privilege;
--为表privilege创建一个普通用户同义词。
CREATE OR REPLACE SYNONYM pri for privilege;
|
| |
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3157118/
,如需转载,请注明出处,否则将追究法律责任。