資料庫的角色
Ⅰ 資料庫在軟體項目中到底是一個什麼樣的角色
資料庫是「按照數據結構來組織、存儲和管理數據的倉庫」。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的「倉庫」,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。
Ⅱ 資料庫角色的操作
資料庫角色從概念上與操作系統用戶是完全無關的。 在實際使用中把它們對應起來可能比較方便,但不是必須的。 資料庫角色在整個資料庫集群中是全局的(而不是每個庫不同)。 要創建一個角色,使用 sql 命令 CREATE ROLE:
CREATE ROLE name; name 遵循 SQL 標識的規則: 要麼完全沒有特殊字元,要麼用雙引號包圍(實際上你通常會給命令增加額外的選項,比如 LOGIN)。 要刪除一個現有角色,使用類似的命令 DROP ROLE:
DROP ROLE name; 為了方便,程序 createuser 和 dropuser 提供了對了這些 SQL 命令的封裝。 我們可以在 shell 命令上直接調用它們:
createuser name dropuser name 要判斷一套現有用戶,檢查 pg_role 系統表,比如
SELECT usename FROM pg_role; psql 的元命令 也可以用於列出現有角色。
Ⅲ 資料庫角色的介紹
在資料庫中,為便於對用戶及許可權進行管理,可以將一組具有相同許可權的用戶組織在一起,這一組具有相同許可權的用戶就稱為角色(Role)。
Ⅳ 資料庫,什麼是角色什麼是成員簡述角色和成員的作用。
你可以這樣想,角色相當於win的用戶組,它是一個成員的集合,可以自定義角色,舉例:資料庫擁有者dbowner;成員就是win的用戶,成員隸屬於某個角色或多個角色,舉例:dbo就是屬於dbowner的一個成員。
Ⅳ 資料庫角色是什麼
對某個 Analysis Services 資料庫具有相同訪問許可權的用戶和組的集合。可以將資料庫角色指派給資料庫中的多個多維數據集,從而將該角色的用戶訪問許可權授予這些多維數據集。
Ⅵ 什麼是資料庫角色
角色是一個強大的工具,使您得以將用戶集中到一個單元中,然後對該單元應用許可權。對一個角色授予、拒絕或廢除的許可權也適用於該角色的任何成員。可以建立一個角色來代表單位中一類工作人員所執行的工作,然後給這個角色授予適當的許可權。當工作人員開始工作時,只須將他們添加為該角色成員,當他們離開工作時,將他們從該角色中刪除。而不必在每個人接受或離開工作時,反復授予、拒絕和廢除其許可權。許可權在用戶成為角色成員時自動生效。
Microsoft® Windows NT® 和 Windows® 2000 組的使用方式與角色很相似。有關更多信息,請參見組。
如果根據工作職能定義了一系列角色,並給每個角色指派了適合這項工作的許可權,則很容易在資料庫中管理這些許可權。之後,不用管理各個用戶的許可權,而只須在角色之間移動用戶即可。如果工作職能發生改變,則只須更改一次角色的許可權,並使更改自動應用於角色的所有成員,操作比較容易。
在 Microsoft® SQL Server™ 2000 和 SQL Server 7.0 版中,用戶可屬於多個角色。
以下腳本說明登錄、用戶和角色的添加,並為角色授予許可權。
USE master
GO
sp_grantlogin 'NETDOMAIN\John'
GO
sp_defaultdb 'NETDOMAIN\John', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Sarah'
GO
sp_defaultdb 'NETDOMAIN\Sarah', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Betty'
GO
sp_defaultdb 'NETDOMAIN\Betty', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Ralph'
GO
sp_defaultdb 'NETDOMAIN\Ralph', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Diane'
GO
sp_defaultdb 'NETDOMAIN\Diane', 'courses'
GO
USE courses
GO
sp_grantdbaccess 'NETDOMAIN\John'
GO
sp_grantdbaccess 'NETDOMAIN\Sarah'
GO
sp_grantdbaccess 'NETDOMAIN\Betty'
GO
sp_grantdbaccess 'NETDOMAIN\Ralph'
GO
sp_grantdbaccess 'NETDOMAIN\Diane'
GO
sp_addrole 'Professor'
GO
sp_addrole 'Student'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\John'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\Sarah'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\Diane'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Betty'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Ralph'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Diane'
GO
GRANT SELECT ON StudentGradeView TO Student
GO
GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor
GO
該腳本給 John 和 Sarah 教授提供了更新學生成績的許可權,而學生 Betty 和 Ralph 只能選擇他們自己的成績。Diane 因同時教兩個班,所以添加到兩個角色中。ProfessorGradeView 視圖應將教授限制在自己班學生的行上,而 StudentGradeView 應限制學生只能選擇自己的成績。
SQL Server 2000 和 SQL Server 7.0 版在安裝過程中定義幾個固定角色。可以在這些角色中添加用戶以獲得相關的管理許可權。下面是伺服器范圍內的角色。
固定伺服器角色
描述
sysadmin
可以在 SQL Server 中執行任何活動。
serveradmin
可以設置伺服器范圍的配置選項,關閉伺服器。
setupadmin
可以管理鏈接伺服器和啟動過程。
securityadmin
可以管理登錄和 CREATE DATABASE 許可權,還可以讀取錯誤日誌和更改密碼。
processadmin
可以管理在 SQL Server 中運行的進程。
dbcreator
可以創建、更改和除去資料庫。
diskadmin
可以管理磁碟文件。
bulkadmin
可以執行 BULK INSERT 語句。
可以從 sp_helpsrvrole 獲得固定伺服器角色的列表,可以從 sp_srvrolepermission 獲得每個角色的特定許可權。
每個資料庫都有一系列固定資料庫角色。雖然每個資料庫中都存在名稱相同的角色,但各個角色的作用域只是在特定的資料庫內。例如,如果 Database1 和 Database2 中都有叫 UserX 的用戶 ID,將 Database1 中的 UserX 添加到 Database1 的 db_owner 固定資料庫角色中,對 Database2 中的 UserX 是否是 Database2 的 db_owner 角色成員沒有任何影響。
固定資料庫角色
描述
db_owner
在資料庫中有全部許可權。
db_accessadmin
可以添加或刪除用戶 ID。
db_securityadmin
可以管理全部許可權、對象所有權、角色和角色成員資格。
db_ddladmin
可以發出 ALL DDL,但不能發出 GRANT、REVOKE 或 DENY 語句。
db_backupoperator
可以發出 DBCC、CHECKPOINT 和 BACKUP 語句。
db_datareader
可以選擇資料庫內任何用戶表中的所有數據。
db_datawriter
可以更改資料庫內任何用戶表中的所有數據。
db_denydatareader
不能選擇資料庫內任何用戶表中的任何數據。
db_denydatawriter
不能更改資料庫內任何用戶表中的任何數據。
可以從 sp_helpdbfixedrole 獲得固定資料庫角色的列表,可以從 sp_dbfixedrolepermission 獲得每個角色的特定許可權。
資料庫中的每個用戶都屬於 public 資料庫角色。如果想讓資料庫中的每個用戶都能有某個特定的許可權,則將該許可權指派給 public 角色。如果沒有給用戶專門授予對某個對象的許可權,他們就使用指派給 public 角色的許可權。
Ⅶ 為什麼要使用資料庫角色
不同的角色許可權不同,有管理員許可權,有組管理許可權,有用戶許可權。如果不定角色,每個用戶都有相同的許可權,那資料庫就會無法管理。
1.Public:全體用戶所共有的角色。如工廠中所有的工人都有進入工廠的許可權。
2.db_owner: 此角色允許用戶完全控制資料庫。
3.db_securityadmin:此角色的用戶允許管理所有的角色以及這些角色的成員。此角色也可以管理對角色許可權的分配。備註:但不能向已有的角色中增加用戶,但可以向創建的角色中添加用戶。
4.db_accessadmin:此角色用於賦予用戶在資料庫中添加或刪除用戶的權利。通常和db_securtiyadmin角色的連用,使用戶能有足夠管理用戶角色的許可權。
Ⅷ 資料庫角色的注意
為了能初創資料庫系統,新建立的資料庫總是包含一個預定義的角色。 這個角色將總是超級用戶, 並且預設時(除非在運行 initdb 時更改過)他將和初始化該資料庫集群的用戶有相同的名稱。 通常,這個角色叫postgres。 為了創建更多角色,你必須首先以這個初始用戶角色聯接。
每一個和資料庫的連接都必須由一個角色身份進行, 這個角色決定在該連接上發出的命令的初始許可權。 和特定資料庫聯接的角色名是由初始化聯接請求的應用以相關的方式聲明的, 比如,psql 程序使用-U命令行選項聲明它代表的進行聯接的角色。 許多應用以當前操作系統的用戶名為預設(這樣的應用包括 createuser 和 psql)。 所以,在系統用戶和資料庫角色之間有某種命名關系會讓我們工作方便很多。
一個客戶端聯接可以用來聯接的資料庫角色集合是由客戶認證設置決定的, (因此,一個客戶端並不局限於以它的操作系統用戶同名的角色進行聯接, 就象你登錄系統的名稱不一定要是你的真實姓名一樣。) 因為角色的身份決定了一個已連接地客戶端可用的許可權, 所以在多用戶環境里仔細配置這些內容是非常重要的。