每次談到用戶和權限,總感覺沒什么去分享和交流的。其實不然,不恰當?shù)娜バ稳莺帽饶闶莻€客戶去買房子,你去看200W的房子和1000W的房子那絕對不一樣,服務級別享受待遇也截然不同。
創(chuàng)新互聯(lián)公司是一家專注于成都做網站、成都網站制作與策劃設計,和平網站建設哪家好?創(chuàng)新互聯(lián)公司做網站,專注于網站建設10余年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:和平等地區(qū)。和平做網站價格咨詢:028-86922220
數(shù)據(jù)庫中用戶和權限好比錢和房子,你用戶級別越高其實對應的權限越高,技術無非都是從這個世界人性化演變過來的。扯的多一些,那么我數(shù)據(jù)庫中用戶密碼最基本的信息,用戶使用特定用戶賬號隊友自己的特點和操作權限。那么角色就是權限的集合,角色可以分配給用戶(給你鑰匙),把這個權限特定集合分配用戶。
啥叫用戶?
分為兩類:1、創(chuàng)建庫的時候系統(tǒng)自己創(chuàng)建的用戶(系統(tǒng)用戶) 2、另一種用系統(tǒng)用戶創(chuàng)建的用戶,叫普通用戶
格式:
select username,account_status,default_tablespace,temprorary_tablespace from user_users;
解釋:
查詢當年系統(tǒng)中所有的用戶和狀態(tài)所屬的表空間。
格式:
create useruser_name identified bypassword default tablespaceusers;
解釋:
學習Oracle一定要學會用英語去看,用英語翻譯上一句命令就是,創(chuàng)建用戶user_name確認密碼password默認表空間是users;其實一句話的是,無壓力(黑色是關鍵字)。
dba_user這個表也可以查看詳細的信息,一個庫表,一個用戶!
用戶與模式(Schema)
模式就是說用戶擁有的對象集合。對象有表,索引,觸發(fā)器等等。每個用戶都會有獨立的模式信息,新建用戶除外,他們的集合為空的。Schema為空,Schema必須依賴于用戶存在。
格式:
select sys_count('userenv','current_user')current_user,sys_countext('userevn','current_schema')current_schema from dual;
解釋:
通過本條的查詢語句發(fā)現(xiàn)我們用System登錄后可以看到集合,到底有啥意義呢,就是說Schema_對象名組合可以限制數(shù)據(jù)庫中唯一的對象。
系統(tǒng)用戶sys和system
系統(tǒng)用戶sys和system是最常用的兩個用戶系統(tǒng),那么sys是ORACLE數(shù)據(jù)庫中最高權限用戶,角色為sysdba(數(shù)據(jù)庫管理員), system僅次于sys用戶,角色是SYSOPER(數(shù)據(jù)庫操作員).比如sys可以創(chuàng)建庫,那么system不可以結合沒有這個權限(默認沒有)。
格式:
show parameter db_name;
解釋:
代碼show parameter用于顯示說明db_name(數(shù)據(jù)庫名稱)參數(shù)信息。
格式:
alter user system account unlock;
解釋:
解鎖用戶,比如scott用戶默認是不能登陸狀態(tài),解鎖后dba_users查詢狀態(tài)則是OPEN打開
格式:
alter user scott identified by password;
解釋:
修改scott的密碼,然后登陸。
權限好比你等級,好比法律就是你在社會制度中的最高等級,Privilege的對象用戶,只要是數(shù)據(jù)庫操作對象和可執(zhí)行的多動都會受到限制的。那么也有兩種權限:1、系統(tǒng)權限 2、對象權限
系統(tǒng)權限:
系統(tǒng)權限是針對數(shù)據(jù)庫特定操作,如創(chuàng)建數(shù)據(jù)表,與對象權限不用,對已有的對象進行訪問和操作。
格式:
select distinct privilege from dba_sys_privs;
解釋:
查看系統(tǒng)權限都有哪一些(主要組成部分)
分配權限:
格式:
grant create session to tiger; --賦予創(chuàng)建會話(連接)的權限
grant create table to tiger; --賦予創(chuàng)建表權限
alter user tiger quota 10M on users quota 2M on temp;--因為沒有分配用戶能使用多大的表空間沒權限,用system分配空間大小
select * from dba_sys_privs where lower(grantee) = 'tiger';--查詢tiger用戶目前有的系統(tǒng)權限
revoke create table from tiger; --撤回回收賦予tiger的權限
對象權限:
格式:
select grantee,table_name,privilege from dba_tab_privs where lower(grantee)='tiger';
解釋:
查看grantee有的對象權限。
格式:
grant select on dual to tiger;--把system查詢dual賦權給tiger
grant insert on table to tiger; --賦予創(chuàng)建table(指定表名)權限
grant update(table_name) to tiger; --賦權只能更新這表中的name列;
grant all on table to tiger;--賦權全部對象權限
revoke all on table to tiger;--將tiger的對象權限全部收回
角色:
雖然我們可以利用系統(tǒng)和對象權限去控制,我們會發(fā)現(xiàn)任務量會變的非常復雜麻煩,在這個背景下,Oralce提出了角色的概念,角色我們該是介紹過就是系統(tǒng)權限或者對象權限的集合。Oracle允許創(chuàng)建角色,然后將角色信息賦予用戶,從而間接的將權限信息添加給用戶,重要的是角色可復用,某一種程度上大大減少了重復的工作和代碼量。
利用繼承的特性,從簡單的角色衍生出復雜的角色,無疑提高的權限分配的工作和效率
一起來創(chuàng)建一個角色
格式:
create rolerole_employee;
解釋:
create role創(chuàng)建角色的關鍵字
格式:
grant all on table to role_employee;--賦予全部權限給角色role
grant role_employee to tiger;--把角色的全部權限給tiger用戶,需要注意必須重新登錄數(shù)據(jù)庫才可以生效。
繼承角色:
角色可以繼承另一個角色的權限信息,減少自身grant的動作指令
格式:
grant system to role_employee;
解釋:
把system的權限賦權給角色role,雖然感覺意義不大,但是一些嚴謹?shù)臄?shù)據(jù)庫對用戶安全會非常重視,每一個角色都會有分類,當代碼量比較復雜時候角色的用處當然會很重要。
格式:
alter user cat default role none;
解釋:
禁止cat用戶默認角色全部禁止,查詢session_roles則為空
格式:
set role role_hr;
解釋:
啟動角色role_hr,如果有多個角色可以用逗號隔開
到最后回頭看一看文章,就是用戶角色權限三者變化和相互依賴的關系,數(shù)據(jù)庫安全僅僅依賴用戶的控制是不可行的,那么一個相對安全邏輯緊密的數(shù)據(jù)庫沒有用戶角色權限等策略是一定不行的,清晰思路一切難題都會迎刃而解!
名稱欄目:用戶and權限
網站鏈接:http://jinyejixie.com/article48/gpiehp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供App設計、做網站、網站設計、定制開發(fā)、服務器托管、小程序開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)