Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1467579
  • 博文数量: 416
  • 博客积分: 13005
  • 博客等级: 上将
  • 技术积分: 3297
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 16:26
文章分类

全部博文(416)

文章存档

2014年(1)

2013年(4)

2012年(46)

2011年(64)

2010年(12)

2009年(4)

2008年(40)

2007年(187)

2006年(58)

分类: Oracle

2007-02-02 09:48:58

包含约束 
只有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)。 

阅读(1331) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~