Oracle數據庫---用戶與角色
版權聲明:版權全部,轉載請註明出處.謝謝 https://blog.csdn.net/weixin_35353187/article/details/87929965
安裝Oracle時,若沒有設置默認密碼,則如下爲默認帳戶的密碼:html
用戶名 / 密碼 | 登陸身份 | 說明 |
sys/change_on_install | SYSDBA 或 SYSOPER | 不能以 NORMAL 登陸,可做爲默認的系統管理員,超級管理員,負責數據庫系統的管理 |
system/manager | SYSDBA 或 NORMAL | 普通管理員,負責數據庫對象的管理,如:建立用戶,受權,建立數據庫等等 |
sysman/oem_temp | sysman 爲 oms 的用戶名 | |
scott/tiger | NORMAL | 普通用戶 |
aqadm /aqadm | SYSDBA 或 NORMAL | 高級隊列管理員 |
Dbsnmp/dbsnmp | SYSDBA 或 NORMAL | 複製管理員 |
scott | SYSDBA 或 NORMAL | 該用戶主要用於給咱們學習的時候使用。若是要使用該用戶就必須解鎖,而且修改密碼 |
hr | SYSDBA 或 NORMAL | 測試用戶。該用戶有一些hr相關的測試數據。若是要使用該用戶就必須解鎖,而且修改密碼 |
cmd窗口鏈接數據庫時,運行cmd命令行sql
sqlplus /nolog 無用戶名登陸數據庫
conn /as sysdba 鏈接到數據本地數據session
alter user system identified by password 修改System 密碼 爲passwordide
查看全部用戶信息:
---dba_users:保存系統中全部用戶的詳細信息。學習
select * from dba_users;
建立用戶
-
create user 用戶名
-
identified by 密碼
-
[ default tablespace 表空間];
-
--新建立的用戶沒有任何權限,登錄後會提示
-
--建立用戶
-
create user test01
-
identified by 123456
-
default tablespace test01;
-
--登陸:也須要有權限
-
--Oracle 中已存在三個重要的角色:connect 角色,resource 角色,dba 角色。
-
-
CONNECT 角色: --是授予最終用戶的典型權利,最基本的
-
ALTER SESSION --修改會話
-
CREATE CLUSTER --創建聚簇
-
CREATE DATABASE LINK --創建數據庫連接
-
CREATE SEQUENCE --創建序列
-
CREATE SESSION --創建會話
-
CREATE SYNONYM --創建同義詞
-
CREATE VIEW --創建視圖
-
-
-
RESOURCE 角色: --是授予開發人員的
-
CREATE CLUSTER --創建聚簇
-
CREATE PROCEDURE --創建過程
-
CREATE SEQUENCE --創建序列
-
CREATE TABLE --建表
-
CREATE TRIGGER --創建觸發器
-
CREATE TYPE --創建類型
-
-
-
DBA 角色:擁有所有特權,是系統最高權限,只有 DBA 才能夠建立數據庫結構,
-
而且系統權限也須要 DBA 授出,且 DBA 用戶能夠操做全體用戶的任意基表,包括刪除
-
-
grant dba to user_test;
-
-
進入 system 用戶下給用戶賦予 dba 權限,不然沒法正常登錄
-
--分配角色權限:
-
-
-- 受權: grant connect,resource to test01;
-
grant dba to test01;
-
-
--撤銷受權
-
-- revoke connect,resource from test01;
設置用戶密碼
alter user 用戶名 identified by 密碼;
alter user test01 identified by a123456; --該方式不能修改成純數字密碼
解鎖用戶
alter user 用戶名 account unlock;
-
--鎖定hr測試用戶
-
alter user hr account lock;
-
-
--解鎖hr測試用戶
-
alter user hr account unlock;
刪除用戶
drop user 用戶名 [cascade];
-
drop user test01 [cascade];
-
--若是刪除的用戶中已經有數據,那麼刪除用戶的時候,就必需要指定cascade關鍵字。
系統權限
-
--系統權限就是建立數據庫對象的權限。系統權限都是以create開頭的權限。
-
--例如:建立會話、建立表、建立索引、建立序列等等。
-
--create session、create table、create index、create sequence等等。
-
--授予用戶系統權限。
-
grant create 權限 to 用戶;
-
--只有管理員才能夠授予用戶系統權限。
-
--授予用戶test01建立會話、建立表的系統權限。
-
grant create session,create table
-
to test01;
對象權限
-
--對象權限就是對數據庫對象的操做權限。
-
--例如:添加表數據、查詢表、刪除表等等操做。
-
select、insert、update、delete、all。
-
--授予用戶對象權限。
-
grant 操做權限
-
on 用戶1.表名
-
to 用戶2;
-
--授予用戶test01查詢和插入scott用戶的emp表的權限。
-
grant select,insert
-
on scott.emp
-
to test01;
查看用戶權限
-
dba_sys_privs:保存全部用戶的系統權限;
-
dba_tab_privs:保存全部用戶的對象權限;
-
select *
-
from dba_sys_privs
-
where grantee ='TEST01';
-
-
select *
-
from dba_tab_privs
-
where grantee ='TEST01';
回收權限
-
--回收用戶的系統權限:
-
revoke create 權限 from 用戶;
-
-
--回收用戶的對象權限:
-
revoke 操做 on 用戶1.表名 from 用戶2;
-
revoke create table
-
from test01;
-
-
revoke insert
-
on scott.emp
-
from test01;
角色
角色就是一組權限的集合。測試
角色的做用:簡化受權操做。flex
Oracle 中已存在三個重要的角色:connect 角色,resource 角色,dba 角色spa
使用角色
-
第一步:建立角色;
-
create role 角色名;
-
-
第二步:給角色受權;
-
grant create 權限to 角色; --授予角色系統權限
-
grant 操做 on 用戶.表名 to 角色; --授予角色對象權限
-
-
第三步:把角色賦給用戶;
-
grant 角色 to 用戶;
-
--第一步:建立角色;
-
create role t_role;
-
-
--第二步:給角色受權;
-
grant create table
-
to t_role; --授予角色系統權限
-
-
grant select
-
on scott.emp
-
to t_role; --授予角色對象權限
-
-
--第三步:把角色賦給用戶;
-
grant t_role
-
to test01;
查詢用戶角色
-
--dba_role_privs:保存全部用戶的角色信息。
-
select *
-
from dba_role_privs
-
where grantee ='TEST01';
回收角色
-
revoke 角色名
-
from 用戶;
-
revoke t_role
-
from test01;
刪除角色
drop role 角色名;
-
drop role t_role;
-
--刪除角色以後,那麼擁有該角色的用戶就會自動地把該角色取消。