當前位置:首頁 » 編程語言 » sql創建角色

sql創建角色

發布時間: 2022-02-23 23:21:04

sql server中利用sql語句如何創建角色和用戶

, securityadmingo--作好SQL的安全管理--作者:鄒建 首先,做好用戶安全:--簡單的,只允許sql的用戶訪問sql(防止利用administrator組用戶訪問)1 .企業管理器--右鍵SQL實例--屬性--安全性--身份驗證--選擇"sql server和windows"--確定2 .企業管理器--安全性--登陸--右鍵sa--設置密碼--其他用戶也設置密碼3 .刪除用戶:BUILTIN\Administrators<機器名 \Administrator--這個用戶不一定有 這樣可以防止用windows身份登陸SQL4 .設置進入企業管理器需要輸入密碼 在企業管理器中--右鍵你的伺服器實例(就是那個有綠色圖標的)--編輯SQL Server注冊屬性--選擇"使用 SQL Server 身份驗證"--並勾選"總是提示輸入登錄名和密碼"--確定--經過上面的設置,你的SQL Server基本上算是安全了.------------------------------------------------------------------------ 其次,改默認埠,隱藏伺服器,減少被攻擊的可能性 SQL Server伺服器--開始--程序--Microsoft SQL Server--伺服器網路實用工具--啟用的協議中"TCP/IP"--屬性--默認埠,輸入一個自已定義的埠,比如2433--勾選隱藏伺服器------------------------------------------------------------------------------管好sql的用戶,防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體對象具有的許可權)--切換到你新增的用戶要控制的資料庫use你的庫名go--新增用戶execsp_addlogin'test'--添加登錄execsp_grantdbaccess N'test'--使其成為當前資料庫的合法用戶execsp_addrolemember N'db_owner' , N'test'--授予對自己資料庫的所有許可權--這樣創建的用戶就只能訪問自己的資料庫,及資料庫中包含了guest用戶的公共表go--刪除測試用戶execsp_revokedbaccess N'test'--移除對資料庫的訪問許可權execsp_droplogin N'test'--刪除登錄 如果在企業管理器中創建的話,就用:企業管理器--安全性--右鍵登錄--新建登錄常規項--名稱中輸入用戶名--身份驗證方式根據你的需要選擇(如果是使用windows身份驗證,則要先在操作系統的用戶中新建用戶)--默認設置中,選擇你新建的用戶要訪問的資料庫名 伺服器角色項 這個裡面不要選擇任何東西 資料庫訪問項 勾選你創建的用戶需要訪問的資料庫名 資料庫角色中允許,勾選"public ","db_ownew" 確定,這樣建好的用戶與上面語句建立的用戶一樣--------------------------------------------------------------------------- 最後一步,為具體的用戶設置具體的訪問許可權,這個可以參考下面的最簡示例:--添加只允許訪問指定表的用戶:execsp_addlogin'用戶名','密碼','默認資料庫名'--添加到資料庫execsp_grantdbaccess'用戶名'--分配整表許可權GRANTSELECT, INSERT, UPDATE, DELETEONtable1TO[用戶名]--分配許可權到具體的列GRANTSELECT, 至於具體的安全設置和理論知道,參考SQL聯機幫助

② SQL如何創建用戶

1. 首先在 SQL Server 伺服器級別,創建登陸帳戶(create login)
--創建登陸帳戶(create login)
create login dba with password='abcd1234@', default_database=mydb
登陸帳戶名為:「dba」,登陸密碼:abcd1234@」,默認連接到的資料庫:「mydb」。 這時候,dba 帳戶就可以連接到 SQL Server 伺服器上了。但是此時還不能 訪問資料庫中的對象(嚴格的說,此時 dba 帳戶默認是 guest 資料庫用戶身份, 可以訪問 guest 能夠訪問的資料庫對象)。

要使 dba 帳戶能夠在 mydb 資料庫中訪問自己需要的對象, 需要在資料庫 mydb 中建立一個「資料庫用戶」,賦予這個「資料庫用戶」 某些訪問許可權,並且把登陸帳戶「dba」 和這個「資料庫用戶」 映射起來。 習慣上,「資料庫用戶」 的名字和 「登陸帳戶」的名字相同,即:「dba」。 創建「資料庫用戶」和建立映射關系只需要一步即可完成:

2. 創建資料庫用戶(create user):
--為登陸賬戶創建資料庫用戶(create user),在mydb資料庫中的security中的user下可以找到新創建的dba
create user dba for login dba with default_schema=dbo
並指定資料庫用戶「dba」 的默認 schema 是「dbo」。這意味著 用戶「dba」 在執行「select * from t」,實際上執行的是 「select * from dbo.t」。

3. 通過加入資料庫角色,賦予資料庫用戶「dba」許可權:
--通過加入資料庫角色,賦予資料庫用戶「db_owner」許可權
exec sp_addrolemember 'db_owner', 'dba'
此時,dba 就可以全權管理資料庫 mydb 中的對象了。

③ 如何為SQL Server中創建的角色分配許可權

角色是一個強大的工具,使您得以將用戶集中到一個單元中,然後對該單元應用許可權。對一個角色授予、拒絕或廢除的許可權也適用於該角色的任何成員。可以建立一個角色來代表單位中一類工作人員所執行的工作,然後給這個角色授予適當的許可權。當工作人員開始工作時,只須將他們添加為該角色成員,當他們離開工作時,將他們從該角色中刪除。而不必在每個人接受或離開工作時,反復授予、拒絕和廢除其許可權。許可權在用戶成為角色成員時自動生效。

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 角色的許可權。

熱點內容
casejava 發布:2025-01-09 22:56:56 瀏覽:698
oracle如何導出資料庫 發布:2025-01-09 22:55:13 瀏覽:771
編程ppm 發布:2025-01-09 22:49:25 瀏覽:729
蒸汽之都偵探安卓按鍵在哪裡 發布:2025-01-09 22:48:30 瀏覽:819
怎麼修改域賬號的配置文件 發布:2025-01-09 22:30:44 瀏覽:478
49葫蘆娃怎麼改密碼 發布:2025-01-09 22:30:00 瀏覽:844
博德之門安卓安裝哪裡 發布:2025-01-09 22:14:40 瀏覽:316
伺服器電腦用關機嗎 發布:2025-01-09 21:53:01 瀏覽:464
機頂盒用戶和密碼是什麼 發布:2025-01-09 21:52:24 瀏覽:385
什麼游戲配置要求高 發布:2025-01-09 21:42:55 瀏覽:493