Oracle數據庫---用戶與角色
版權聲明:版權所有,轉載請注明出處.謝謝 https://blog.csdn.net/weixin_35353187/article/details/87929965
安裝Oracle時,若沒有設置默認密碼,則以下為默認賬戶的密碼:
用戶名 / 密碼 | 登錄身份 | 說明 |
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命令行
sqlplus /nolog 無用戶名登錄
conn /as sysdba 連接到數據本地數據
alter user system identified by password 修改System 密碼 為password
查看所有用戶信息:
---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;
角色
角色就是一組權限的集合。
角色的作用:簡化授權操作。
Oracle 中已存在三個重要的角色:connect 角色,resource 角色,dba 角色
使用角色
-
第一步:創建角色;
-
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;
-
--刪除角色之后,那么擁有該角色的用戶就會自動地把該角色取消。
ORACLE數據庫的用戶權限和角色權限控制