Oracle使用者許可權

2021-09-01 00:24:58 字數 3100 閱讀 4334

系統許可權:

1、使用grant語句向使用者賦予系統許可權:

grant system_privilege to user_name [ with admin option ] ;

注:使用with admin option語句後,使使用者可以將相同許可權賦給其他使用者。

2、使用revoke語句撤銷系統許可權:

revoke system_privilege from user_name ;

注:當刪除a使用者的許可權時,通過a賦予b的許可權不會消失。

3、任何使用者,都必須有create session許可權,才可以連線到資料庫。

4、可通過 selectdistinctprivilegefrom dba_sys_privs; 來查詢所有的系統許可權列表

analyze any

audit system

create table

drop profile

drop any role

alter database

drop any index

drop any table

lock any table

execute any procedure

……基本上都是可以顧名思義的,但是許可權相對比較多,150項左右。

物件許可權:

1、物件許可權賦予語法:

grant object_privilege on object_name to username [ with grant option ];

注:使用with grant option語句後,使使用者可以將相同許可權賦給其他使用者,與系統許可權相同。

2、物件許可權撤銷語法:

revoke object_privilege on object_name from username;

注:當刪除a使用者的許可權時,通過a賦予b的許可權自動消失,與系統許可權相反。

3、檢視具體的物件許可權:

select * from dba_tab_privs where grantee= 'wangxiaoqi' ;  

select * fromtable_privilegeswhere grantee='wangxiaoqi';

注1:兩者均可以檢視物件許可權,只是展現形式不同。

注2:表名為table_priv,但 不光只有table,而是所有object的資訊,包括function、procedure、package等。

4、object privilege 種模擬較少,而且根據物件型別的不同而不同。

在賦值時可以使用all代替該型別物件的所有許可權型別,如:

grant select , update , delete , insert on table_name to user_name;

grant all on table_name to user_name;

注:對於table,all包括:alter、delete、index、insert、select、update、references、on commit refresh、query rewrite、debug、flashback

角色管理:

1、通過role來簡化賦權操作,每個role含有若干項系統許可權。role包括系統預定義和自定義兩種。

select * from dba_roles; --查詢當前所有role列表,包括自定義

select * from dba_role_privs; --查詢某使用者的role許可權

select * from role_sys_privs; --查詢當前使用者的role,及其所包含的系統許可權

2、系統預定義角色:

connect:

create view

create table

alter session

create cluster

create session

create synonym

create sequence

create database link

resource:

create type

create table

create cluster

create trigger

create operator

create sequence

create indextype

create procedure

另外包括比較重要的role如:dba、exp_full_database、imp_full_database等。

3、自定義角色:

建立role:

create role role_name

[ not identified | identified by password]

注:identified 表示在修改該role時是否需要提供密碼 《修改,不包括賦權和取消許可權》

在建立 role 之後,使用 grant 和 revoke 手動設定 role 對應的許可權

再使用 grant 和 revoke 將 role 賦給 user

注:可以將 role 賦給 role

4、啟用和禁用role:

set role [role [identified by password] |,role [identified by password]...]

| all [except role[,role]...]

| none ];

注:all 表示啟用改使用者的所有角色,none表示禁用所有角色。

例:禁用所有角色:setrolenone;

啟用所有角色:setroleall; --role不能有密碼

啟用某個角色:setrole role_test identifiedby test; --有密碼的話

禁用某個角色:setroleallexcept role_test;

注:setrole命令是覆蓋性質的,即不能先啟用乙個,再啟用另乙個,必須一條命令中全部啟動;

5、修改使用者時設定角色:

alter user username

[default role [role_name[,role_name,...]]

| all [except role_name[,role_name,...]]

| none ];

Oracle 使用者許可權

sys 系統管理員,擁有最高許可權 system 本地管理員,次高許可權 scott 普通使用者,密碼預設為tiger,預設未解鎖 sys 系統管理員,擁有最高許可權 system 本地管理員,次高許可權 scott 普通使用者,密碼預設為tiger,預設未解鎖 二 登陸 sqlplus as sy...

ORACLE使用者許可權

sqlplus as sysdba 登陸sys帳戶 sql create user zhangsan sql alert user zhangsan identified by tiger sql grant connect,resource,dba to zhangsan 檢視許可權 select...

Oracle使用者許可權管理

sys 系統管理員,擁有最高許可權 system 本地管理員,次高許可權 scott 普通使用者,密碼預設為tiger,預設未解鎖 sys 系統管理員,擁有最高許可權 system 本地管理員,次高許可權 scott 普通使用者,密碼預設為tiger,預設未解鎖 二 登陸 sqlplus as sy...