Elke,

Yes, DDL does not perform name resolution


All DDL statements? Some, like DROP TABLE seem to perform resolution at least on the first level...

Cheers,
JLS
Zabach, Elke wrote:

John Singleton wrote:


Hello all,

So I think I've pretty much got MaxDB's name resolution system down. But
I just wanted to post to the list to make sure :)

So, from what I've been able to determine, it works like this:

1) Say I have three users. DBA, DBA2, and DBA2USER. DBA creates DBA2
then DBA2 creates the resource user DBA2USER.
The ownership looks like this:
DBA
   DBA2
      DBA2USER

1) As user DBA2USER I issue the query, "Select * from sometable"


(Please excuse the pseudo-code :) )

Level 1:
Searches for an object named "sometable" owned by DBA2USER.

IF FOUND
   RETURN SUCCESS
ELSE
   CONTINUE TO LEVEL 2

Level 2:
Searches for an object named "sometable" owned by DBA2 (the owner of
DBA2USER)

IF FOUND
   IF DBA2USER HAS PRIVILEGES
      RETURN SUCCESS
   ELSE
       RETURN FAIL
ELSE
   CONTINUE TO LEVEL3

Level3:
Searches for an object "sometable" owned by DBA (the owner of DBA2)

IF FOUND
     IF DBA2USER HAS PRIVILEGES
         RETURN SUCCESS
     ELSE
         RETURN FAIL
ELSE
    CONTINUE TO LEVEL 4

Level 4:
Searches for a public synonym named "sometable"

IF EXISTS A PUBLIC SYNONYM "SOMETABLE"
   IF DBA2USER HAS PRIVILEGES
      RETURN SUCCESS
   ELSE
       RETURN FAIL
ELSE
   RETURN FAIL


Test Questions:
1) How does this look? This model has been working in all of my tests
so far.



It looks nearly correct. But public synonym would not be level 4, but level 2, increasing the levels of search in dba2 and dba.



2)  Some statements do not perform resolution. For example, the CREATE
SYNONYM statement does not perform resolution. The Select statement,
however, does.

Example:
Given the catalog:
   DBA.SOMETABLE
      DBA.DBA2
           DBA2.DBA2USER (where the user DBA2USER has all privileges on
DBA.SOMETABLE)

If DBA2USER does: "select * from SOMETABLE" then the query succeeds.
However if DBA2USER does, "CREATE PUBLIC SYNONYM S_SOMETABLE FOR
SOMETABLE" then the query fails.

Is there a list of statements that do not perform name resolution?




Yes, DDL does not perform name resolution

Elke
SAP Labs Berlin



Many many thanks,

JLS



--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



-- MaxDB Discussion Mailing List For list archives: http://lists.mysql.com/maxdb To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to