包含约束
只有NOT NULL约束只能在列级定义,PRIMARY KEY , FOREIGN KEY , UNIQUE和CHECK既能在列级又能在表级定义。
ALTER TABLE inventory
DISABLE CONSTRAINT inventory_id_number_pk CASCADE;
在这里,DISABLE语法的作用是禁用inventory表中的 PRIMARY KEY约束,而添加CASCADE则表示相关的完整性约束也一并禁用。
AKTER TABLE 命令可为一个现有的表添加一个约束,为一个列添加NOT NULL 约束,只能使用MODIFY子句,但需注意的是,添加NOT NULL约束时,必须符合以下两个条件中的一个:
1.表中没有数据 2.添加约束的目标行没有空值。
PRIMARY KEY 约束所在列必须不包含空值和重复值,要是你试图在该列插入数据,系统会返回一个错误。
控制用户访问
INDEX对象权限可被授予一个用户,但不能授予一个角色(role)。它允许用户使用CREATE INDEX命令在一个表上创建索引。对象权限用于在表,视图,序列和过程上执行特殊操作。
CREATE SESSION, DROP USER, 和 BACKUP ANY TABLE,这些是系统权限,系统权限用于执行数据定义和数据控制命令,和其他数据导向性行为。
要是你想通过是用PUBILIC关键字使所有用户能对表A进行SELECT查询,你必须拥有该表,或被授予带WITH GRANT OPTION,对该表进行的SELECT查询的权限。要是别人对你授权的语句中包含WITH GRANT OPTION选项,你可以把得到的该权限授予别人。
一旦你创建了一个表,你自动拥有查询该表和在表上授权的能力。
*只有拥有DBA权限或ALTER UAER权限的用户才能替普通用户修改密码。
*一旦用户被授权允许连接数据库,他们就能够修改自己的密码,而无需拥有 ALTER USER权限。
REVOKE references ON inventory FROM joe CASCADE CONSTRAINTS;
这命令实现了两个作用:1 所有由joe创建的FOREIGN KEY 约束被删除
2 他创建 FOREIGN KEY约束的能力被取消了。
GRANT ALL ON inventory TO joe;
这命令使用了关键字ALL,向joe授予了在inventory表上ALTER, INDEX, INSERT, REFERENC ES,
SELECT, UPDATE, 和DELETE的权限。
要是你想通过命令REVOKE来回收用户A的某一权限,那你必须是当初的授权人。
要能创建用户,你必须拥有CREATE USER权限。要想有权访问数据库,你需拥有CREATE SE SSION权限。要想在任何方案(schema)中创建和删除次表,你必须拥有CREATE ANY TABLE 和DROP ANY TABLE权限,要想在自己的方案(schema)中创建和删除次表,你必须拥有CREATE TABLE 和DROP TABLE权限。
对象权限REFERENCE只能授予用户,不能授予角色(role)。
阅读(1279) | 评论(0) | 转发(0) |