将一个表的权限赋予其它的用户就像从表中选择一行一样地简单 可是 如果你有多
个表需要对它们赋予访问规则和用户时 你可以使用 SQL 来为你生成一个脚本— — 除非你
喜欢打字
首先 回顾一下为单个表赋予权限
INPUT
SQL》 GRANT SELECT ON HISTORY TO BRANDON;
OUTPUT
Grant succeeded。
你准备好了吗 下边的语句将会创建一组 GRANT 语句来为你的计划中的 10 个表赋予
权限
INPUT/OUTPUT
SQL》 SET ECHO OFF
SQL》 SET FEEDBACK OFF
SQL》 SET HEADING OFF
SQL》 SPOOL GRANTS。SQL
SQL》 SELECT "GRANT SELECT ON " || TABLE_NAME || " TO BRANDON;"
2 FROM CAT
3 /
GRANT SELECT ON ACCT_PAY TO BRANDON;
GRANT SELECT ON ACCT_REC TO BRANDON;
GRANT SELECT ON CUSTOMERS TO BRANDON;
GRANT SELECT ON EMPLOYEES TO BRANDON;
GRANT SELECT ON HISTORY TO BRANDON;
GRANT SELECT ON INVOICES TO BRANDON;
GRANT SELECT ON ORDERS TO BRANDON;
GRANT SELECT ON PRODUCTS TO BRANDON;
GRANT SELECT ON PROJECTS TO BRANDON;
GRANT SELECT ON VENDORS TO BRANDON;
363
…………………………………………………………Page 364……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
分析
GRANT 语句已经自动地为每一个表生成了 BRANDON 现在可以访问你的每一个表
了
现在我们使用 SPOOL 命令来关闭输出文件 并假定该文件已经被编辑过了 该文件
已经为运行做好了准备
INPUT/OUTPUT
SQL》 SPOOL OFF
SQL》 SET ECHO ON
SQL》 SET FEEDBACK ON
SQL》 START GRANTS。SQL
SQL》 GRANT SELECT ON ACCT_PAY TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON ACCT_REC TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON CUSTOMERS TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON EMPLOYEES TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON HISTORY TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON INVOICES TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON ORDERS TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON PRODUCTS TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON PROJECTS TO BRANDON;
Grant succeeded。
SQL》 GRANT SELECT ON VENDORS TO BRANDON;
Grant succeeded。
364
…………………………………………………………Page 365……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
分析
将 ECHO 和 FEEDBACK 设置为 ON 是很好的 设置了 FEEDBACK 我们就可以在执
行的时候看到 Grant succeeded 没用多少力气 我们就为 BRANDON 赋予了 10 个表的访
问权限 而且 你所做的工作可能会不只是 10 个表
在载入数据时解除对数的约束
当你向表中载入数据的时候 有时你会不得不解除对表的约束 假定你的表已经被删
减过或有损坏了 更有可能的是你的表存有如外部关键字之类的引用完整性约束 这时数
据库不会允许你向表中插入不在其它表中存在相关关系的数据 如果引用列在其它的表中
不存在的话 你在最初装入数据的时候你可能会不得不解除对表的约束 当然 当载入成
功以后 你应该将这些约束恢复
INPUT
SQL》 SET ECHO OFF
SQL》 SET FEEDBACK OFF
SQL》 SET HEADING OFF
SQL》 SPOOL DISABLE。SQL
SQL》 SELECT "ALTER TABLE " || TABLE_NAME ||
2 "DISABLE CONSTRAINT " || CONSTRAINT_NAME || ";"
3 FROM SYS。DBA_CONSTRAINTS
4 WHERE OWNER = "RYAN"
5 /
OUTPUT
ALTER TABLE ACCT_PAY DISABLE CONSTRAINT FK_ACCT_ID;
ALTER TABLE ACCT_REC DISABLE CONSTRAINT FK_ACCT_ID;
ALTER TABLE CUSTOMERS DISABLE CONSTRAINT FK_CUSTOMER_ID;
ALTER TABLE HISTORY DISABLE CONSTRAINT FK_ACCT_ID;
ALTER TABLE INVOICES DISABLE CONSTRAINT FK_ACCT_ID;
ALTER TABLE ORDERS DISABLE CONSTRAINT FK_ACCT_ID;
分析
365
…………………………………………………………Page 366……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
这个对象已经生成了一系列的 ALTER TABLE 语句来解除所有为 RYAN 所拥有的表 在连
接符末尾的分号是为了保证每个语句的完整
INPUT/OUTPUT
SQL》 SPOOL OFF
SQL》 SET ECHO OFF
SQL》 SET FEEDBACK ON
SQL》 START DISABLE。SQL
Constraint Disabled。
Constraint Disabled。
Constraint Disabled。
Constraint Disabled。
Constraint Disabled。
Constraint Disabled。
分析
注意在这里 ECHO 被设置为 OFF 也就是说你在执行不会看到对应的语句 但是由于
FEEDBACK 设置为 ON 所以你可以看到结果
Constraint Disabled。
如果 ECHO 和 FEEDBACK 都设置成 OFF 了 在执行时将什么都不会显示 只是经过
一段时间的暂停以后又回到了 SQL》 的提示符下
现在你可以放心地载入你的数据而不必担心因为约束而导致的错误了 约束是好事
但它在数据载入的时候会造成障碍 你也可以使用相同的思想来恢复对表的约束
一次创建多个同义字
另外一项令人烦躁和费力的工作是创建多个同义字 不管是公共的还是私有的 只有
DBA 可以创建共同的同义字 但是任何用户都可以创建私有的同义字
下边的例子是对所有为 RYAN 所拥有的表创建公共同义字
INPUT
SQL》 SET ECHO OFF
SQL》 SET FEEDBACK OFF
小说推荐
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 最新章:第214章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- 深入浅出MFC第2版(PDF格式)
- -Page 1-Page 2-山高月小山高月小 水落石出水落石出山高月小山高月小 水落石出水落石出-Page 3-深入淺出MFC(第版 使用Visual C 5.0 MFC 4.2)Dissecting MFC(Second Edition Using Visual C 5.0 MFC 4.2)侯俊
- 最新章:第309章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 最新章:第26章
- 电子电路大全(PDF格式)
- -Page 1-电力生产人员技能培训电路基础部分电路基础部分电电路路基基础础部部分分-Page 2-一、电路的基本概念和基本定律-Page 3-考试点1o 1、掌握电阻、独立电压源、独立电流源、11受控源、电容、电感、耦合电感、理想变压器诸元件的定义、性质2o 2、掌握电流、电压参考方向的概念223
- 最新章:第353章