----3個預設的使用者
1 sys change_on_install [as sysdba] // 最高系統管理員
2 system manage// 本地管理員
3 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 ;//把修改任意表結構的許可權授權給所有的使用者
-----------系統撤銷授權
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--資料定義語言 (Data Definition Language) 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]//關閉