按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
INPUT
SQL》 SET ECHO OFF
SQL》 SET FEEDBACK OFF
366
…………………………………………………………Page 367……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
SQL》 SET HEADING OFF
SQL》 SPOOL PUB_SYN。SQL
SQL》 SELECT 'CREATE PUBLIC SYNONYM ' || TABLE_NAME || ' FOR ' ||
2 OWNER || '。' || TABLE_NAME || ';'
3 FROM SYS。DBA_TABLES
4 WHERE OWNER = 'RYAN'
5 /
OUTPUT
CREATE PUBLIC SYNONYM ACCT_PAY FOR RYAN。ACCT_PAY;
CREATE PUBLIC SYNONYM ACCT_REC FOR RYAN。ACCT_REC;
CREATE PUBLIC SYNONYM CUSTOMERS FOR RYAN。CUSTOMERS;
CREATE PUBLIC SYNONYM EMPLOYEES FOR RYAN。EMPLOYEES;
CREATE PUBLIC SYNONYM HISTORY FOR RYAN。HISTORY;
CREATE PUBLIC SYNONYM INVOICES FOR RYAN。INVOICES;
CREATE PUBLIC SYNONYM ORDERS FOR RYAN。ORDERS;
CREATE PUBLIC SYNONYM PRODUCTS FOR RYAN。PRODUCTS;
CREATE PUBLIC SYNONYM PROJECTS FOR RYAN。PROJECTS;
CREATE PUBLIC SYNONYM VENDORS FOR RYAN。VENDORS;
现在 运行这个文件
INPUT/OUTPUT
SQL》 SPOOL OFF
SQL》 ED PUB_SYN。SQL
SQL》 SET ECHO ON
SQL》 SET FEEDBACK ON
SQL》 START PUB_SYN。SQL
SQL》 CREATE PUBLIC SYNONYM ACCT_PAY FOR RYAN。ACCT_PAY;
Synonym created。
SQL》 CREATE PUBLIC SYNONYM ACCT_REC FOR RYAN。ACCT_REC;
Synonym created。
SQL》 CREATE PUBLIC SYNONYM CUSTOMERS FOR RYAN。CUSTOMERS;
367
…………………………………………………………Page 368……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
Synonym created。
SQL》 CREATE PUBLIC SYNONYM EMPLOYEES FOR RYAN。EMPLOYEES;
Synonym created。
SQL》 CREATE PUBLIC SYNONYM HISTORY FOR RYAN。HISTORY;
Synonym created。
SQL》 CREATE PUBLIC SYNONYM INVOICES FOR RYAN。INVOICES;
Synonym created。
SQL》 CREATE PUBLIC SYNONYM ORDERS FOR RYAN。ORDERS;
Synonym created。
SQL》 CREATE PUBLIC SYNONYM PRODUCTS FOR RYAN。PRODUCTS;
Synonym created。
SQL》 CREATE PUBLIC SYNONYM PROJECTS FOR RYAN。PROJECTS;
Synonym created。
SQL》 CREATE PUBLIC SYNONYM VENDORS FOR RYAN。VENDORS;
Synonym created
分析
几乎是马上 所有的数据库用户都可以通过公共同义字来访问为 RYAN 所拥有的表了
现在用户无需在执行查询的时候对表加以限制 限制的意思就是必须指定表的所有者 如
RYAN。VENDORS
但是如果公共同义字并不存在呢 假如 BRANDON 想访问所有为 RYAN 所拥有的表
来创建私有同义字时该如何做呢
INPUT/OUTPUT
SQL》 CONNECT BRANDON
ENTER PASSWORD: *******
CONNECTED。
SQL》 SET ECHO OFF
SQL》 SET FEEDBACK OFF
SQL》 SET HEADING OFF
SQL》 SPOOL PRIV_SYN。SQL
SQL》 SELECT 'CREATE SYNONYM ' || TABLE_NAME || ' FOR ' ||
368
…………………………………………………………Page 369……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
2 OWNER || '。' || TABLE_NAME || ';'
3 FROM ALL_TABLES
4 /
CREATE SYNONYM DUAL FOR SYS。DUAL;
CREATE SYNONYM AUDIT_ACTIONS FOR SYS。AUDIT_ACTIONS;
CREATE SYNONYM USER_PROFILE FOR SYSTEM。USER_PROFILE;
CREATE SYNONYM CUSTOMERS FOR RYAN。CUSTOMERS;
CREATE SYNONYM ORDERS FOR RYAN。ORDERS;
CREATE SYNONYM PRODUCTS FOR RYAN。PRODUCTS;
CREATE SYNONYM INVOICES FOR RYAN。INVOICES;
CREATE SYNONYM ACCT_REC FOR RYAN。ACCT_REC;
CREATE SYNONYM ACCT_PAY FOR RYAN。ACCT_PAY;
CREATE SYNONYM VENDORS FOR RYAN。VENDORS;
CREATE SYNONYM EMPLOYEES FOR RYAN。EMPLOYEES;
CREATE SYNONYM PROJECTS FOR RYAN。PROJECTS;
CREATE SYNONYM HISTORY FOR RYAN。HISTORY;
INPUT/OUTPUT
SQL》 SPOOL OFF
SQL》
SQL》 SET ECHO OFF
SQL》 SET FEEDBACK ON
SQL》 START PRIV_SYN。SQL
Synonym created。
Synonym created。
Synonym created。
Synonym created。
Synonym created。
Synonym created。
Synonym created。
Synonym created。
369
…………………………………………………………Page 370……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
Synonym created。
Synonym created。
Synonym created。
Synonym created。
Synonym created。
分析
几乎没做什么工作 BRANDON 就有了所有为 RYAN 所拥有的表的同义字 他不再需
要对表进行限制了
为你的表创建视图
如果你想为一组表创建视图 你需要做与下例类似的工作
INPUT
SQL》 SET ECHO OFF
SQL》 SET FEEDBACK OFF
SQL》 SET HEADING OFF
SQL》 SPOOL VIEWS。SQL
SQL》 SELECT 'CREATE VIEW ' || TABLE_NAME || '_VIEW AS SELECT * FROM ' ||
2 TABLE_NAME || ';'
3 FROM CAT
4 /
OUTPUT
CREATE VIEW ACCT_PAY_VIEW AS SELECT * FROM ACCT_PAY;
CREATE VIEW ACCT_REC_VIEW AS SELECT * FROM ACCT_REC;
CREATE VIEW CUSTOMERS_VIEW AS SELECT * FROM CUSTOMERS;
CREATE VIEW EMPLOYEES_VIEW AS SELECT * FROM EMPLOYEES;
CREATE