![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Not too long ago, I needed to create a FK relationship from a table in my schema to a table in another schema on the same database instance. I learned that I needed to be granted the REFERENCES privilege on the "remote" table. Why are things set-up this way? And is it ill-advised to be creating FK relationships to tables in "remote" schemas? If so, why? Should FK relationships only be established between tables in the same schema. |
|
I don't have an agenda here other than trying to learn some Best Practices in this regard. And I'm curious about why things are as they are regarding the pre-condition of a REFERENCES grant. Thanks. Dana |
#3
| |||
| |||
|
|
"dana" <dana_at_w... (AT) yahoo (DOT) com> wrote in message news:70e3a29a-7575-41c0-b3ad-0e1dd70eeff8 (AT) r25g2000vbn (DOT) googlegroups.com... Not too long ago, I needed to create a FK relationship from a table in my schema to a table in another schema on the same database instance. I learned that I needed to be granted the REFERENCES privilege on the "remote" table. Why are things set-up this way? And is it ill-advised to be creating FK relationships to tables in "remote" schemas? If so, why? Should FK relationships only be established between tables in the same schema. I'm not an Oracle guy but REFERENCES is ANSI defined. *My take is that it allows you to put rows in your table that is validated against another table for which you may not be granted SELECT. *So (it seems to me that) thisis an unusual security/validation feature for RDBMSs. *If your table is supposed to have a (key-wise) subset of another table and the key information is "sensitive" in the "parent table" then this feature supports the situation. I don't have an agenda here other than trying to learn some Best Practices in this regard. And I'm curious about why things are as they are regarding the pre-condition of a REFERENCES grant. Thanks. Dana- Hide quoted text - - Show quoted text - |
#4
| |||
| |||
|
|
When the object owner, userA, grants userB, REFERENCES, userA has in effect given userB the right to stop userA from updating their own table unless userA's action meets the requirement imposed by userB's FK. |
|
In a large application where multiple owners are definded for areas/ departments you would expect that the need for FK to reference other owners tables will exist. |
|
If your table is supposed to have a (key-wise) subset of another table and the key information is "sensitive" in the "parent table" then this feature supports the situation. |
#5
| |||
| |||
|
#6
| |||
| |||
|
![]() |
| Thread Tools | |
| Display Modes | |
| |