----3個默認的用戶
sys change_on_install [as sysdba] // 最高系統(tǒng)管理員
system manage// 本地管理員
scott tiger// 普通用戶
----創(chuàng)建用戶
create user leap identified by 1234 // 創(chuàng)建leap 用戶 密碼為1234
----系統(tǒng)授權(quán)
grant create seesion to leap;//系統(tǒng)管理員授權(quán)給leap會話的權(quán)限
grant create table to leap;;//系統(tǒng)管理員授權(quán)給leap創(chuàng)建表的權(quán)限
grant unlimited tablespace to leap;//系統(tǒng)管理員授權(quán)給leap 不限制表空間大小的權(quán)限 默認的表空間是Users
grant create session to public ;----把 會話的權(quán)限授權(quán)給所有的用戶
grant create any table to public ;----把創(chuàng)建任意表的權(quán)限授權(quán)給所有的用戶
grant alter any table to public ;----把修改任意表結(jié)構(gòu)的權(quán)限授權(quán)給所有的用戶
-- 斷開連接和連接
disconn 和conn username/password
-- 修改表結(jié)構(gòu)
alter table mytable add columnName varchar(10);---添加一個新列
-----------系統(tǒng)撤銷授權(quán)
revoke create seesion from leap;// 撤銷授權(quán)
revoke create table from leap;
revoke unlinited tablespace from leap;
------數(shù)據(jù)字典
----查詢當(dāng)前用戶系統(tǒng)權(quán)限
select * from user_sys_privs
----查詢當(dāng)前用戶表的權(quán)限
select * from user_tab_privs
----查詢當(dāng)前用戶表的列的權(quán)限
select * from user_col_privs
--- 設(shè)定行的顯示寬度
set linesize 400
----對象授權(quán)
注意: 誰擁有該對象(即誰創(chuàng)建的對象) 誰擁有授權(quán)的權(quán)利
grant select mytable to leap2
grant all my table to leap2
---授權(quán)表的列的控制權(quán)限,對象權(quán)限可以控制到列的范圍
grant update<columnName> on mytable to leap2--- 把權(quán)限控制在表的列上 用戶leap2 只能修改columnName 列
grant insert<columnName> on mytable to leap2--- 把權(quán)限控制在表的列上 用戶leap2 只能修改columnName 列
注意;授權(quán)列的控制權(quán)只能對update 和insert操作,查詢和刪除不能控制到列
select * from user_col_privs ---查詢列的數(shù)據(jù)字典
---授權(quán)成功后 leap2 用戶查詢
select * from leap.mytable
DDL--數(shù)據(jù)定義語言 create drop 。。。 不需要提交commit
DDL--數(shù)據(jù)操縱語言 insert update delete 。。。 需要提交commit
DCL--數(shù)據(jù)控制語言 grant 。。。 不需要提交 commit
------- 對象撤銷授權(quán)
grant select mytable to leap2
grant all on mytable to leap2
-----權(quán)限的傳遞
---不可以權(quán)限傳遞
grant alter any table to leap2 ---把修改表結(jié)構(gòu)的權(quán)限授權(quán)給leap2,
并且leap2 不可以把此權(quán)限授權(quán)給其他的用戶leap3
---可以權(quán)限傳遞
grant alter any table to leap2 with admin option ---把修改表結(jié)構(gòu)的權(quán)限授權(quán)給leap2,
并且leap2 可以把此權(quán)限授權(quán)給其他的用戶leap3
-----把表的查詢權(quán)限授權(quán)給其他用戶 不能傳遞
grant select on mytable to leap2 ---把查詢表的權(quán)限授權(quán)給leap2,
并且leap2 不可以把此權(quán)限授權(quán)給其他的用戶leap3
---把表的查詢權(quán)限授權(quán)給其他用戶 能傳遞
grant select on mytable to leap2 with grant option---把查詢表的權(quán)限授權(quán)給leap2,
并且leap2 可以把此權(quán)限授權(quán)給其他的用戶leap3
----角色 角色就是權(quán)限的集合 可以把一個角色授予給用戶
---創(chuàng)建角色
create role myrole
---刪除角色
drop myrole
--角色是權(quán)限的集合,所以要把權(quán)限放進角色內(nèi)。
grant create session to myrole
grant create table to myrole
---授權(quán)角色給用戶
grant myrole to leap
注意: 有些權(quán)限不能授權(quán)給角色
例如 unlimited tablespace
表示屬于創(chuàng)建它的用戶的
角色不是屬于任意一個用戶 是所有用戶公用的
---限制用戶
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] --關(guān)閉