對於Oracle系統管理員而言,用戶管理是基本的操作。下面列表中介紹了Oracle角色權限管理的一些指令,以供Oracle系統管理員們參考。
----3個默認的用戶
sys change_on_install [as sysdba] // 最高系統管理員
system manage// 本地管理員
scott tiger// 普通用戶
----創建用戶
create user leap identifIEd by 1234 // 創建leap 用戶 密碼為1234
----權限管理:系統授權
grant create seesion to leap;//系統管理員授權給leap會話的權限
grant create table to leap;;//系統管理員授權給leap創建表的權限
grant unlimited tablespace to leap;//系統管理員授權給leap 不限制表空間大小的權限 默認的表空間是Users
grant create session to public ;----把 會話的權限授權給所有的用戶
grant create any table to public ;----把創建任意表的權限授權給所有的用戶
grant alter any table to public ;----把修改任意表結構的權限授權給所有的用戶
-- 斷開連接和連接
disconn 和conn username/passWord
-- 修改表結構
alter table mytable add columnName varchar(10);---添加一個新列
-----------權限管理:系統撤銷授權
revoke create seesion from leap;// 撤銷授權
revoke create table from leap;
revoke unlinited tablespace from leap;
------數據字典
----查詢當前用戶系統權限
select * from user_sys_privs
----查詢當前用戶表的權限
select * from user_tab_privs
----查詢當前用戶表的列的權限
select * from user_col_privs
--- 設定行的顯示寬度
set linesize 400
----權限管理:對象授權
注意: 誰擁有該對象(即誰創建的對象) 誰擁有授權的權利
grant select mytable to leap2
grant all my table to leap2
---授權表的列的控制權限,對象權限可以控制到列的范圍
grant update<columnName> on mytable to leap2--- 把權限控制在表的列上 用戶leap2 只能修改columnName 列
grant insert<columnName> on mytable to leap2--- 把權限控制在表的列上 用戶leap2 只能修改columnName 列
注意;授權列的控制權只能對update 和insert操作,查詢和刪除不能控制到列
select * from user_col_privs ---查詢列的數據字典
---授權成功後 leap2 用戶查詢
select * from leap.mytable
DDL--數據定義語言 create drop 。。。 不需要提交commit
DDL--數據操縱語言 insert update delete 。。。 需要提交commit
DCL--數據控制語言 grant 。。。 不需要提交 commit
------- 權限管理:對象撤銷授權
grant select mytable to leap2
grant all on mytable to leap2
-----權限管理:權限的傳遞
---不可以權限傳遞
grant alter any table to leap2 ---把修改表結構的權限授權給leap2,
並且leap2 不可以把此權限授權給其他的用戶leap3
---可以權限傳遞
grant alter any table to leap2 with admin option ---把修改表結構的權限授權給leap2,
並且leap2 可以把此權限授權給其他的用戶leap3
-----把表的查詢權限授權給其他用戶 不能傳遞
grant select on mytable to leap2 ---把查詢表的權限授權給leap2,
並且leap2 不可以把此權限授權給其他的用戶leap3
---把表的查詢權限授權給其他用戶 能傳遞
grant select on mytable to leap2 with grant option---把查詢表的權限授權給leap2,
並且leap2 可以把此權限授權給其他的用戶leap3
----角色 角色就是權限的集合 可以把一個角色授予給用戶
---創建角色
create role myrole
---刪除角色
drop myrole
--角色是權限的集合,所以要把權限放進角色內。
grant create session to myrole
grant create table to myrole
---授權角色給用戶
grant myrole to leap
注意: 有些權限不能授權給角色
例如 unlimited tablespace
表示屬於創建它的用戶的
角色不是屬於任意一個用戶 是所有用戶公用的
---限制用戶
alter User 用戶名 Account Lock---- 用戶加鎖
alter User 用戶名 Account unLock---- 用戶解鎖
alter User 用戶名 PassWord expire---- 用戶密碼即可失效
---刪除用戶
drop User 用戶名--- 用戶下面每有對象
drop User 用戶名 cascade ----用戶下面有表或者對象必須用cascade
cascade 表示強制刪除用戶所有對象
----命令下啟動Oracle listener
lsnrctl start [listenerName] --啟動
lsnrctl stop [listenerName] --關閉
希望這張列表,能夠對Oracle系統管理員們給予一定的幫助。