references权限是什么意思?

xhj1 2003-09-09 03:25:15
书上说: Permits the grantee of this object privilege to create or alter a table in order to create a foreign key constraint against data in the referenced table.

但是,我给另一个用户只授权references权限之后,却无法用alter table语句增加约束,系统提示权限不足,为什么?

另一方面,我给用户授权alter权限之后,没有授予references权限却也可以增加约束,那么reference权限有什么用?

另外,references权限是针对所要修改的表还是所引用的表,如果是针对所引用的表的话,我却发觉不管我给不给reference权限,只要有alter权限我就可以修改我想要修改的表,至此,我完全迷惑了——

这个references权限究竟是什么意思?烦请高手指点,我给分一向很及时,且很大方,谢谢:-)
...全文
2083 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
l2g32003 2003-09-09
  • 打赏
  • 举报
回复
真不知道你是怎么作的

SQL> create table t (n number);

表已创建。

SQL> insert into t values(1);

已创建 1 行。

SQL> commit;

提交完成。

SQL> grant create session,create table to a identified by tiger;

授权成功。

SQL> alter user a default tablespace lgone quota 5M on lgone;

用户已更改。

SQL> connect a
请输入口令:
已连接。
SQL> create table tt(nn number);

表已创建。

SQL> connect lgone
请输入口令:
已连接。

SQL> alter table t add constraint t_pk primary key(n);

表已更改。

SQL> grant references on t to a;

授权成功。

SQL> revoke create table from a;

撤销成功。

SQL> connect a;
请输入口令:
已连接。
SQL> alter table tt add constraint t_f foreign key(nn) references lgone.t(n);

表已更改。

SQL> insert into tt values(2);
insert into tt values(2)
*
ERROR 位于第 1 行:
ORA-02291: 违反完整约束条件 (A.T_F) - 未找到父项关键字


SQL> insert into tt values(1);

已创建 1 行。
xhj1 2003-09-09
  • 打赏
  • 举报
回复
up
xhj1 2003-09-09
  • 打赏
  • 举报
回复 1
楼上两位, 寒!

牛头不对马嘴,不要把提问的人当弱智,OK?

我想我把问题描述得够清晰了: 就是讨教一下Oracle的references对象权限的含义.

真诚期待理解这个简单基础问题的真正的高手出场帮我讲解一下.
qiaolin53 2003-09-09
  • 打赏
  • 举报
回复 1
references中文意思是"参照,引用"在SQL Server中创建外键时用
例如:
alter table zcmx
add constraint FK_ZCMX_ZCML foreign key(ZCMX_ZCID)
references ZCML(ZCML_ZCID)

references权限是限定了当前表的取值范围,必须在引用表的取之取值范围内。


l2g32003 2003-09-09
  • 打赏
  • 举报
回复
references 可以创建引用表的外键
alter 是更改对象

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧