Oracle用戶權(quán)限表管理方式,: 一、創(chuàng)建用戶
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元措美做網(wǎng)站,已為上家服務(wù),為措美各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
sys;//系統(tǒng)管理員,擁有最高權(quán)限
system;//本地管理員,次高權(quán)限
scott;//普通用戶,密碼默認(rèn)為tiger,默認(rèn)未解鎖
sys;//系統(tǒng)管理員,擁有最高權(quán)限
system;//本地管理員,次高權(quán)限
scott;//普通用戶,密碼默認(rèn)為tiger,默認(rèn)未解鎖二、 登陸用戶
sqlplus / as sysdba;//登陸sys帳戶
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陸普通用戶scott
sqlplus / as sysdba;//登陸sys帳戶
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陸普通用戶
oracle中賦予用戶權(quán)限的具體步驟如下:
1、首先打開電腦,點(diǎn)擊打開電腦桌面左下角的開始圖標(biāo)。
2、然后在彈出來(lái)的窗口中點(diǎn)擊搜索框,輸入“cmd”,回車確定。
3、然后在彈出來(lái)的窗口中點(diǎn)擊輸入“grant unlimited tablespace to 用戶名”,回車確定,獲取操作表空間權(quán)限。
4、然后在彈出來(lái)的窗口中點(diǎn)擊打開“grant create table to 用戶名”回車確定,獲取創(chuàng)建表權(quán)限。
5、然后點(diǎn)擊輸入“grante drop table to 用戶名”,回車確定獲取刪除表權(quán)限。
6、點(diǎn)擊輸入“grant insert table to 用戶名”,回車確定獲取插入表權(quán)限。
7、點(diǎn)擊輸入“grant update table to 用戶名”,回車確定獲取更新表權(quán)限。
oracle的用戶權(quán)限要是詳細(xì)說(shuō),那么可能要很久,畢竟oracle的管理都是用過(guò)用戶實(shí)現(xiàn)的。
(1)這里個(gè)人覺得最重要的是保護(hù)所在服務(wù)器的oracle用戶(系統(tǒng)用戶)的密碼。并且不管是什么系統(tǒng)用戶,就算是root,也不能隨意修改才可以。畢竟本地登錄的sqlplus / as sysdba就是dba權(quán)限,如果真的是這里出現(xiàn)問(wèn)題,那么哭都來(lái)不及。
(2)dba用戶有且只能有一個(gè)(用戶名一定要毫不起眼,避免被猜出來(lái),密碼也要符合加密原則并且定期修改),這個(gè)用戶要專人專用,絕對(duì)不能大面積給予該用戶的密碼,還是那句話權(quán)限太大。除了不得不利用dba身份進(jìn)行的操作,其他事情一律不用這個(gè)用戶,要當(dāng)做這個(gè)用戶不存在。
(3)其他用戶權(quán)限,先說(shuō)數(shù)據(jù)庫(kù)的主要操作——增刪改查,增是一個(gè)單獨(dú)的用戶,改刪為一個(gè)用戶或兩個(gè)用戶(這個(gè)權(quán)限也是嚴(yán)格控制的,因?yàn)橐话銇?lái)說(shuō)),查為一個(gè)用戶。感覺是不是很煩,一般也沒有這么用的,不過(guò)如果真的要求嚴(yán)格,那么這是最好的辦法。
(4)其他的就是關(guān)于表的分層管理(當(dāng)然每層屬于不同的用戶或者每層分成幾塊,每塊都是不同的用戶),這樣可以盡量避免因?yàn)闄?quán)限導(dǎo)致的數(shù)據(jù)庫(kù)問(wèn)題。退一步說(shuō),就算出了問(wèn)題,數(shù)據(jù)也是可以找回的。
(5)最后一個(gè)是每一個(gè)大面積分發(fā)的用戶的授權(quán)都是針對(duì)表的,至于針對(duì)表空間等數(shù)據(jù)庫(kù)系統(tǒng)層面的授權(quán),則是由專門的用戶由專門的人操作完成的。
工具/材料
CMD控制臺(tái)
01
首先打開CMD命令行,輸入如下的SQL語(yǔ)句進(jìn)行oracle數(shù)據(jù)庫(kù)連接,如下圖所示
02
然后通過(guò)Create User命令來(lái)創(chuàng)建數(shù)據(jù)庫(kù)用戶,如下圖所示,創(chuàng)建用戶的時(shí)候可以增加臨時(shí)表
03
創(chuàng)建好用戶以后,就可以通過(guò)select命令來(lái)從dba_users表中查詢創(chuàng)建的用戶是否存在
04
接下來(lái)就需要給創(chuàng)建的用戶進(jìn)行連接授權(quán),如下圖所示,通過(guò)grant命令進(jìn)行授權(quán)
05
授權(quán)成功以后,可以通過(guò)conn命令測(cè)試連接權(quán)限是否開通成功,如下圖所示
06
當(dāng)然還可以對(duì)用戶的密碼進(jìn)行修改,如下圖所示,通過(guò)alter命令來(lái)對(duì)用戶密碼進(jìn)行修改
07
如果不想讓一個(gè)用戶進(jìn)行數(shù)據(jù)庫(kù)操作,你可以把這個(gè)用戶鎖定,如下圖所示,通過(guò)alter和lock配合使用即可實(shí)現(xiàn)
08
最后演示一下如何刪除一個(gè)用戶,如下圖所示,刪除用戶運(yùn)用drop命令即可
一、權(quán)限分類:
系統(tǒng)權(quán)限:系統(tǒng)規(guī)定用戶使用數(shù)據(jù)庫(kù)的權(quán)限。(系統(tǒng)權(quán)限是對(duì)用戶而言)。
實(shí)體權(quán)限:某種權(quán)限用戶對(duì)其它用戶的表或視圖的存取權(quán)限。(是針對(duì)表或視圖而言的)。
二、系統(tǒng)權(quán)限管理:
1、系統(tǒng)權(quán)限分類:
DBA: 擁有全部特權(quán),是系統(tǒng)最高權(quán)限,只有DBA才可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
RESOURCE:擁有Resource權(quán)限的用戶只可以創(chuàng)建實(shí)體,不可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
CONNECT:擁有Connect權(quán)限的用戶只可以登錄Oracle,不可以創(chuàng)建實(shí)體,不可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
對(duì)于普通用戶:授予connect, resource權(quán)限。
對(duì)于DBA管理用戶:授予connect,resource, dba權(quán)限。
2、系統(tǒng)權(quán)限授權(quán)命令:
[系統(tǒng)權(quán)限只能由DBA用戶授出:sys, system(最開始只能是這兩個(gè)用戶)]
授權(quán)命令:SQL grant connect, resource, dba to 用戶名1 [,用戶名2]...;
[普通用戶通過(guò)授權(quán)可以具有與system相同的用戶權(quán)限,但永遠(yuǎn)不能達(dá)到與sys用戶相同的權(quán)限,system用戶的權(quán)限也可以被回收。]
例:
SQL connect system/manager
SQL Create user user50 identified by user50;
SQL grant connect, resource to user50;
查詢用戶擁有哪里權(quán)限:
SQL select * from dba_role_privs;
SQL select * from dba_sys_privs;
SQL select * from role_sys_privs;
刪除用戶:SQL drop user 用戶名 cascade; //加上cascade則將用戶連同其創(chuàng)建的東西全部刪除
3、系統(tǒng)權(quán)限傳遞:
增加WITH ADMIN OPTION選項(xiàng),則得到的權(quán)限可以傳遞。
SQL grant connect, resorce to user50 with admin option; //可以傳遞所獲權(quán)限。
4、系統(tǒng)權(quán)限回收:系統(tǒng)權(quán)限只能由DBA用戶回收
命令:SQL Revoke connect, resource from user50;
系統(tǒng)權(quán)限無(wú)級(jí)聯(lián),即A授予B權(quán)限,B授予C權(quán)限,如果A收回B的權(quán)限,C的權(quán)限不受影響;系統(tǒng)權(quán)限可以跨用戶回收,即A可以直接收回C用戶的權(quán)限。
三、實(shí)體權(quán)限管理
1、實(shí)體權(quán)限分類:select, update, insert, alter, index, delete, all //all包括所有權(quán)限
execute //執(zhí)行存儲(chǔ)過(guò)程權(quán)限
user01:
SQL grant select, update, insert on product to user02;
SQL grant all on product to user02;
user02:
SQL select * from user01.product;
// 此時(shí)user02查user_tables,不包括user01.product這個(gè)表,但如果查all_tables則可以查到,因?yàn)樗梢栽L問(wèn)。
3. 將表的操作權(quán)限授予全體用戶:
SQL grant all on product to public; // public表示是所有的用戶,這里的all權(quán)限不包括drop。
[實(shí)體權(quán)限數(shù)據(jù)字典]:
SQL select owner, table_name from all_tables; // 用戶可以查詢的表
SQL select table_name from user_tables; // 用戶創(chuàng)建的表
SQL select grantor, table_schema, table_name, privilege from all_tab_privs; // 獲權(quán)可以存取的表(被授權(quán)的)
SQL select grantee, owner, table_name, privilege from user_tab_privs; // 授出權(quán)限的表(授出的權(quán)限)
4. DBA用戶可以操作全體用戶的任意基表(無(wú)需授權(quán),包括刪除):
DBA用戶:
SQL Create table stud02.product(
id number(10),
name varchar2(20));
SQL drop table stud02.emp;
SQL create table stud02.employee
as
select * from scott.emp;
5. 實(shí)體權(quán)限傳遞(with grant option):
user01:
SQL grant select, update on product to user02 with grant option; // user02得到權(quán)限,并可以傳遞。
6. 實(shí)體權(quán)限回收:
user01:
SQLRevoke select, update on product from user02; //傳遞的權(quán)限將全部丟失。
一、創(chuàng)建用戶的Profile文件
SQL create profile student limit // student為資源文件名
FAILED_LOGIN_ATTEMPTS 3 //指定鎖定用戶的登錄失敗次數(shù)
PASSWORD_LOCK_TIME 5 //指定用戶被鎖定天數(shù)
PASSWORD_LIFE_TIME 30 //指定口令可用天數(shù)
二、創(chuàng)建用戶
SQL Create User username
Identified by password
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
例:
SQL Create user acc01
identified by acc01 // 如果密碼是數(shù)字,請(qǐng)用雙引號(hào)括起來(lái)
default tablespace account
temporary tablespace temp
profile default
quota 50m on account;
SQL grant connect, resource to acc01;
[*] 查詢用戶缺省表空間、臨時(shí)表空間
SQL select username, default_tablespace, temporary_tablespace from dba_users;
[*] 查詢系統(tǒng)資源文件名:
SQL select * from dba_profiles;
資源文件類似表,一旦創(chuàng)建就會(huì)保存在數(shù)據(jù)庫(kù)中。
SQL select username, profile, default_tablespace, temporary_tablespace from dba_users;
SQL create profile common limit
failed_login_attempts 5
idle_time 5;
SQL Alter user acc01 profile common;
三、修改用戶:
SQL Alter User 用戶名
Identified 口令
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
1、修改口令字:
SQLAlter user acc01 identified by "12345";
2、修改用戶缺省表空間:
SQL Alter user acc01 default tablespace users;
3、修改用戶臨時(shí)表空間
SQL Alter user acc01 temporary tablespace temp_data;
4、強(qiáng)制用戶修改口令字:
SQL Alter user acc01 password expire;
5、將用戶加鎖
SQL Alter user acc01 account lock; // 加鎖
SQL Alter user acc01 account unlock; // 解鎖
四、刪除用戶
SQLdrop user 用戶名; //用戶沒有建任何實(shí)體
SQL drop user 用戶名 CASCADE; // 將用戶及其所建實(shí)體全部刪除
*1. 當(dāng)前正連接的用戶不得刪除。
五、監(jiān)視用戶:
1、查詢用戶會(huì)話信息:
SQL select username, sid, serial#, machine from v$session;
2、刪除用戶會(huì)話信息:
SQL Alter system kill session 'sid, serial#';
3、查詢用戶SQL語(yǔ)句:
SQL select user_name, sql_text from v$open_cursor;
SQL ALTER SESSION SET
NLS_LANGUAGE= 'SIMPLIFIED CHINESE'
NLS_TERRITORY= 'CHINA'
NLS_CURRENCY= 'RMB'
NLS_ISO_CURRENCY= 'CHINA'
NLS_NUMERIC_CHARACTERS= '.,'
NLS_CALENDAR= 'GREGORIAN'
NLS_DATE_FORMAT= 'yyyy-mm-dd dy'
NLS_DATE_LANGUAGE= 'SIMPLIFIED CHINESE'
NLS_SORT= 'BINARY'
TIME_ZONE= '+08:00'
NLS_DUAL_CURRENCY = 'RMB'
NLS_TIME_FORMAT = 'HH.MI.SSXFF AM'
NLS_TIMESTAMP_FORMAT = 'DD-MON-RR HH.MI.SSXFF AM'
NLS_TIME_TZ_FORMAT = 'HH.MI.SSXFF AM TZH:TZM'
NLS_TIMESTAMP_TZ_FORMAT = 'DD-MON-RR HH.MI.SSXFF AM TZH:TZM'
一、Oracle 權(quán)限管理
SQL grant connect, resource, dba to acc01;
SQL revoke connect, resource from acc01;
二、Oracle 角色管理
SQL Create Role role_name
Identified by password/ Not Identified;
SQL Alter Role role_name ...
SQL Grant privs to role_name;
SQL Grant role_name to user_name
SQL Set Role role_name
All Except role_name2 / None