天天看點

ORACLE grant connect, resource to user

GRANT時候,權限基本分為兩類:

    系統權限:系統規定使用者使用資料庫的權限。(系統權限是對使用者而言)。 

    實體權限:某種權限使用者對其它使用者的表或視圖的存取權限。(是針對表或視圖而言的)。

接下來看系統權限,

    DBA:擁有全部特權,是系統最高權限,隻有DBA才可以建立資料庫結構。

    RESOURCE:擁有Resource權限的使用者隻可以建立實體,不可以建立資料庫結構。

    CONNECT:擁有Connect權限的使用者隻可以登入Oracle,不可以建立實體,不可以建立資料庫結構。

對于普通使用者:授予connect, resource權限。 

對于DBA管理使用者:授予connect,resource, dba權限。

且系統權限隻能由DBA使用者授出:sys, system(最開始隻能是這兩個使用者)。普通使用者通過授權可以具有與system相同的使用者權限,

但永遠不能達到與sys使用者相同的權限,system使用者的權限也可以被回收

另外,對于WITH ADMIN OPTION級聯授權的問題,

1)如果使用WITH ADMIN OPTION為某個使用者授予系統權限,那麼對于被這個使用者授予相同權限的所有使用者來說,取消該使用者的

系統權限并不會級聯取消這些使用者的相同權限。 

2)系統權限無級聯,即A授予B權限,B授予C權限,如果A收回B的權限,C的權限不受影響;系統權限可以跨使用者回收,即A可以

直接收回C使用者的權限。

3、證明下為什麼resource和connect的角色不能建立視圖。

SQL> select role, count(*) from role_sys_privs group by role;

ROLE                                    COUNT(*)

------------------------------ ----------

EXP_FULL_DATABASE            8

DBA                                      160

SCHEDULER_ADMIN             6

RESOURCE                            8

IMP_FULL_DATABASE           68

CONNECT                             1

可以看到RESOURCE和CONNECT具有的權限個數。

下面看看各自都有什麼權限:

SQL> select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;

GRANTEE                              PRIVILEGE

------------------------------ ----------------------------------------

RESOURCE                            CREATE CLUSTER

RESOURCE                            CREATE INDEXTYPE

RESOURCE                            CREATE OPERATOR

RESOURCE                            CREATE PROCEDURE

RESOURCE                            CREATE SEQUENCE

RESOURCE                            CREATE TABLE

RESOURCE                            CREATE TRIGGER

RESOURCE                            CREATE TYPE

8 rows selected.

SQL> select grantee,privilege from dba_sys_privs where grantee='CONNECT' order by privilege;

GRANTEE                              PRIVILEGE

------------------------------ ----------------------------------------

CONNECT                             CREATE SESSION