程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle權限設置

Oracle權限設置

編輯:Oracle教程

oracle的用戶安全管理主要有權限和角色

當剛剛建立用戶時,用戶沒有任何權限,也不能執行任何操作。如果要執行某種特定的數據庫操作,則必須為其授予系統的權限。

如果用戶要訪問其他方案的對象,則必須為其授予對象的權限,為了簡化權限的管理,可以使用角色

權限:

這裡是執行特定的命令和訪問對象的權利.包括系統和對象權限

系統權限

是執行特定類型的sql命令.主要是對用戶來說的.分類

DBA 全部權限.可以創建數據庫結構Resource:只可以創建實體,不可以創建數據庫結構Connect:只能登陸,不可創建實體和數據庫結構

對於普通用戶:授予connect, resource權限。

對於DBA管理用戶:授予connect,resource, dba權限

系統權限授權命令:

[系統權限只能由DBA用戶授出:sys, system(最開始只能是這兩個用戶)]

授權命令:SQL> grant connect, resource, dba to 用戶名1 [,用戶名2]...;

[普通用戶通過授權可以具有與system相同的用戶權限,但永遠不能達到與sys用戶相同的權限,system用戶的權限也可以被回收]

例:

SQL> connect system/manager
SQL> Create user user50 identified by user50;
SQL> grant connect,resource to user50; 

查詢用戶擁有哪裡權限:

SQL> select * from dba_role_privs;
SQL> select * from dba_sys_privs;
SQL> select * from role_sys_privs;

刪除用戶:SQL> drop user 用戶名 cascade; //加上cascade則將用戶連同其創建的東西全部刪除

注意:在授予系統權限時,可以帶有with admin option選項,這樣,被授予權限的用戶或是角色還可以將該系統權限授予其他的用戶

或是角色。

例如

//創建用戶

sql>create user kenidentified by m123;
sql>create user tomidentified by m123

給用戶ken授權

sql>grant create session,create table to ken with admin option;
sql>grant create view to ken;

給用戶tom授權

我們可以通過ken給tom授權,因為with admin option是加上的。當然也可以通過DBA給tom授權,這裡我們就用ken給tom授權。

sql>grant createsession,create table to tom with admin option;
sql>grantcreate view to tom;——這個是不可以的,因為Ken沒有該權限的下放權限。

回收系統權限

一般情況下,回收系統權限是dba來完成的,如果其他的用戶來回收系統權限,要求該用戶必須具有相應系統權限及轉授系統權限

的選項(with admin option)。回收系統權限使用revoke來完成。

當回收了系統權限後,用戶就不能執行相應的操作了,但是請注意,系統權限不是級聯回收的。

執行以下語句:

sql>revoke create session from ken;

說明:DBA執行了該語句後回收了Ken的登錄權限後,Ken自然就不能再登錄了,有Ken下放的該權限所有者tom還是可以正常

登錄的。

對象權限:

某種權限用戶對其它用戶的表或視圖的存取權限。(是針對表或視圖而言的)。

用戶可以直接訪問自己方案的對象。但是如果要訪問別的方案的對象,則必須具有對象的權限。比如Smith用戶要訪問scott.emp

表(scott:方案,emp:表),則必須在scott.emp表上具有對象的權限。

常用的有

增刪改查,改(數據的修改和表結構的修改),索引,執行(execute),all等

grant create session to zhangsan;//授予zhangsan用戶創建session的權限,即登陸權限
grant unlimited session to zhangsan;//授予zhangsan用戶使用表空間的權限
grant create table to zhangsan;//授予創建表的權限
grante drop table to zhangsan;//授予刪除表的權限
grant insert table to zhangsan;//插入表的權限
grant update table to zhangsan;//修改表的權限
grant all to public;//這條比較重要,授予所有權限(all)給所有用戶(public)

當然了也包括with授權,權限回收操作。

小結:

剛開始的時候也沒看oracle的任何語言就去操作了,感覺無從下手,很難學麼。但是當查看了oracle的基本操作後,與sql

的命令大相徑庭。只是多了一些命令授權,也是很有意思的。只是在sql中我們沒有這樣寫。因為sql中帶有客戶端替我們做了這些

工作。所以一些常用的命令我們還是親自多多寫寫吧。剛開始熟悉環境還是很有用處的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved