ORACLE學習 有關使用者及許可權的控制

2021-04-30 20:27:50 字數 3479 閱讀 2018

三個預設使用者 

sys     change_on_install  //網路管理員                 [as sysdba]

system  manager     //本地管理員

scott   tiger    //在oracle10 中預設鎖定     普通使用者

啟動例項 oradim -starup -sid orcl

建立使用者 sqlplus  / as sysdba

sql>show user; //

建立使用者及許可權控制

sql>create user hanm identified by phan;//密碼是phan

sql>grant create session to hanm;  //給hanm授權

sql>grant create table to hanm;//建表許可權

sql>grant unlimited tablespace;//使用表空間的許可權   沒有任何限制的使用表空間

sql>

sql>

sql>sqlplus hanm/phan //登入

sql>create table mytable (id int);

sql>insert into mytable values(1);

sql>select * from mytable;//當乙個使用者有使用空間和建立表的許可權時,這個使用者就可以對這個表進行增、刪、改、查等因為這個表屬於這個使用者

sql>revoke create table from hanm;//撤消許可權

查詢資料字典

sql>select * from user_sys_privs;//這是乙個系統提供的檢視,裡面放的是系統資訊

sql>

系統許可權和物件許可權

sql>create user wangwu identified by wangwu;

sql>grant create session to wangwu;

sql>grant create table,unlimited tablesapace to wangwu;

//wangwu login

sql>create table mytable(id int);

sql>insert into mytable values(1);

//lisi login

sql>select * from wangwu.mytable;//訪問wangwu的乙個表

//sys login

sql>sys有許可權但看不到,這需要wangwu進行commit;資料才能寫入硬碟

//讓lisi可以訪問wangwu的表    wangwu login

sql>grant select on mytable to lisi;

sql>grant insert on mytable to lisi;

sql>grant all on mytable to lisi;//把與物件相關的所有許可權授予lisi

sql>revoke all on mytable from lisi;//把與物件相關所有許可權撤消

//誰擁有這個物件誰就可以把許可權授予出去

sql>grant create session to public;//把某一許可權授予所有使用者public

sql>

sql>set linesize 400 //將乙個行的寬度設大一些    //在dos命令列中可能視窗的寬度會限制視窗大小

許可權可以控制到列的級別

sql> grant update(name) on mytable to lisi;//只允許lisi更新name一列

//插入和更新可以控制到時列,而刪除和查詢是無法控制到列的。

sql>select * from user_tab_privs;//檢視擁有對列的許可權

sql>

//許可權的

sql>grant alter any table to lisi with admin option;

sql>grant select on a to lisi with grant option;

//問題a把許可權給b,b把許可權給c 如果撤消a給b的許可權,那c還有許可權嗎?

//角色就是許可權的集合

sql>create role myrole;//建立許可權

sql>grant create session to myrole;

sql>grant create table to myrole;

sql>create user zhangsun identified by zhangsan;

sql>grant myrole to zhangsan;//將乙個角色授予zhangsan

sql>drop role myrole;//刪除角色

//有些許可權很高不能授予角色,只能授予使用者。比如unlimited tablespace

//[alter table] alter anytable

//[drop table] drop any table

//表是屬於某乙個使用者的,但是角色不論誰建立,都是大家共用的

丟失管理員密碼怎麼辦?

sql>alter user scott identified by tiger;//修改普通使用者的密碼

oracle資料庫的驗證機制

資料庫的三種驗證機制

作業系統驗證

密碼檔案驗證

資料庫驗證//普通使用者用這種方式

windows下oracle的啟動過程

lsnrctl start

oradim -starup -sid orcl

linux下oracle的啟動過程

lsnrctl start

dbstart start

sqlplus /nolog

conn sys/pwd as sysdba;

startup;

密碼丟失

普通使用者密碼丟失由管理員使用者重新設定密碼

管理員使用者密碼丟失則:

1、pwdorcl.ora  orcl是例項名,把其刪掉

2、orapwd file=e:/oracle/ora92/database/pwdora9i password=123456   //重新生成密碼檔案

select * from v$pwfile_users;//顯示所有特權使用者

sql>

sql>alter user [username] account lock

sql>alter user [username] account unlock

sql>alter user [username] password expire//使用者密碼即刻失效,即登入就改密碼

sql>drop user [username] cascade;  //cascade把使用者的物件也刪除

sql>

oracle使用者許可權及角色

每個oracle使用者都有乙個名字和口令,並擁有一些由其建立的表 檢視和其他資源。oracle角色 role 就是一組許可權 privilege 或者是每個使用者根據其狀態和條件所需的訪問型別 使用者可以給角色授予或賦予指定的許可權,然後將角色賦給相應的使用者。乙個使用者也可以直接給其他使用者授權。...

Oracle使用者許可權及死鎖

oracle使用者許可權表 oracle資料庫中涉及到使用者許可權的三個表,dba users,all users,user users有什麼區別 dba 開頭的是查全庫所有的,all 開頭的是查當前使用者可以看到的,user 開頭的是查當前使用者的 使用者與模式 sys使用者,預設始終建立,且未被...

oracle使用者建立及許可權設定

許可權 create session create table unlimited tablespace connect resource dba例 sqlplus nolog sql conn as sysdba sql create user username identified by pas...