sqlserver建表許可權
『壹』 奼傛暀sqlServer澶ф墜錛屾庝箞璁劇疆SQLServer涓哄栫晫璁塊棶鐨勬椂鍊欏彧鑳借塊棶鍒拌嗗浘錛屼笉璁╄塊棶鑰呯湅鍒版暟鎹搴撻噷闈㈢殑琛
sqlserver2000錛
璁懼畾鏉冮檺錛屽皢瀵瑰簲鐨勮〃寤虹珛鐩稿簲瑙嗗浘涔嬪悗錛
鍙沖嚮鐢ㄦ埛鍚庯紝鐐瑰嚮鏉冮檺鎸夐挳榪涜屾潈闄愯懼畾鎸夐挳錛屽圭敤鎴瘋兘鎿嶄綔鐨勮〃鐨勬潈闄愯繘琛岃懼畾錛屽備笅閾捐倖鍥撅細
『貳』 怎麼設置SQL資料庫用戶許可權
-- sqlserver:一、操作步驟
1.
首先進入資料庫級別的【安全性】-【登錄名】-【新建登錄名】
(圖1:新建登錄名)
2.
在【常規】選項卡中,如下圖所示,創建登陸名,並設置默認的資料庫。
(圖2:設置選項)
3.
在【用戶映射】選項卡中,如下圖所示,勾選需要設置的資料庫,並設置【架構】,點擊【確認】按鈕,完成創建用戶的操作
(圖3:選擇對應資料庫)
4.
現在我們就可以對testlog資料庫中的user表進行許可權的設置了,【表】-【
屬性】
(圖4:選擇對應表)
5.
在【許可權】選項卡中,如下圖所示,依此點擊【添加】-【瀏覽】-【選擇對象】
(圖5:設置訪問表的用戶)
6.
在上面點擊【確認】後,我們就可以下面的列表中找到對應的許可權,如果你還想細化到列的許可權的話,右下角還有一個【列許可權】的按鈕可以進行設置,點擊【確認】按鈕就完成了這些許可權的設置了
(圖6:許可權列表)
7.
現在就使用testuser用戶登陸資料庫了,登陸後如下圖所示,現在只能看到一個表了
(圖7:效果)
二、注意事項
1.
在上面的第3步驟中需要注意:如果這里沒有選擇對應的資料庫的話,之後去testlog資料庫中是找不到testuser。
(圖8:找不到testuser用戶)
2.
在上面的第3步驟,設置完testlog數據後,需要點擊【確認】按鈕,完成創建用戶操作,如果這個時候去設置【安全對象】,是無法在【添加】-【特定對象】-【對象類型】-【登陸名】-【瀏覽】中找到剛剛新建的testuser用戶的。
3.
其實在資料庫級別的【安全性】創建的用戶是屬於全局的,當設置了某個資料庫,比如testlog之後,這個用戶就會出現在這個資料庫的【安全性】列表中。
如果刪除testlog這個用戶,會出現下面的提示。刪除了後,這個用戶就無法登陸了。需要去對應的資料庫中刪除用戶,如果沒有刪除又創建,是會報錯的。
(圖9:刪除testuser用戶)
4.
在第6步的【顯式許可權】列表中,如果選擇了【control】這個選項,那麼在【select】中設置查詢【列許可權】就沒有意義了,查詢就不會受限制了。如果設置【列許可權】,在正常情況下會顯示下圖的報錯信息:
(圖10:效果)
5.
在testlog資料庫的【安全性】-【testuser】-【屬性】-【安全對象】-【添加】-【對象類型】這里有更多關於資料庫級別的一些對象類型可以設置。
(圖11:其它對象類型)
『叄』 sql server 表的許可權如何解決
你搞的有點復雜了,你既然都有了Aa的許可權了,直接修改不就行了么。
再說了,也可以讓資料庫管理員給你的角色授權嘛,怎麼還新建一個庫,沒有必要。
==============================================================
這事兒啊,還得找你們資料庫管理員。可以對單張表授權。
新建登陸用戶,不用給庫伺服器角色,資料庫角色就用默認的public。
然後,在查詢分析器中,對創建的該角色,特殊授權。
比如我們創建了登陸名為rr的用戶,僅僅把tb這張表給他用:
GRANT SELECT,delete,insert on tb TO rr
他對其他表是操作不了的。
『肆』 請問在SQLServer 2000中用戶和角色的區別以及對象許可權和語句許可權的區別。麻煩用規范語言作答。
/*--示例說明
示例在資料庫pubs中創建一個擁有表jobs的所有許可權、擁有表titles的SELECT許可權的角色r_test
隨後創建了一個登錄l_test,然後在資料庫pubs中為登錄l_test創建了用戶賬戶u_test
同時將用戶賬戶u_test添加到角色r_test中,使其通過許可權繼承獲取了與角色r_test一樣的許可權
最後使用DENY語句拒絕了用戶賬戶u_test對表titles的SELECT許可權。
經過這樣的處理,使用l_test登錄SQL Server實例後,它只具有表jobs的所有許可權。
--*/
USE pubs
--創建角色 r_test
EXEC sp_addrole 'r_test'
--授予 r_test 對 jobs 表的所有許可權
GRANT ALL ON jobs TO r_test
--授予角色 r_test 對 titles 表的 SELECT 許可權
GRANT SELECT ON titles TO r_test
--添加登錄 l_test,設置密碼為pwd,默認資料庫為pubs
EXEC sp_addlogin 'l_test','pwd','pubs'
--為登錄 l_test 在資料庫 pubs 中添加安全賬戶 u_test
EXEC sp_grantdbaccess 'l_test','u_test'
--添加 u_test 為角色 r_test 的成員
EXEC sp_addrolemember 'r_test','u_test'
--拒絕安全賬戶 u_test 對 titles 表的 SELECT 許可權
DENY SELECT ON titles TO u_test
/*--完成上述步驟後,用 l_test 登錄,可以對jobs表進行所有操作,但無法對titles表查詢,雖然角色 r_test 有titles表的select許可權,但已經在安全賬戶中明確拒絕了對titles的select許可權,所以l_test無titles表的select許可權--*/
--從資料庫 pubs 中刪除安全賬戶
EXEC sp_revokedbaccess 'u_test'
--刪除登錄 l_test
EXEC sp_droplogin 'l_test'
--刪除角色 r_test
EXEC sp_droprole 'r_test'
首先,做好用戶安全:
--簡單的,只允許sql的用戶訪問sql(防止利用administrator組用戶訪問)
1.企業管理器--右鍵SQL實例--屬性--安全性--身份驗證--選擇"sql server和windows"--確定
2.企業管理器--安全性--登陸--右鍵sa--設置密碼--其他用戶也設置密碼
3.刪除用戶:
BUILTIN\Administrators
<機器名>\Administrator --這個用戶不一定有
這樣可以防止用windows身份登陸SQL
4.設置進入企業管理器需要輸入密碼
在企業管理器中
--右鍵你的伺服器實例(就是那個有綠色圖標的)
--編輯SQL Server注冊屬性
--選擇"使用 SQL Server 身份驗證"
--並勾選"總是提示輸入登錄名和密碼"
--確定
--經過上面的設置,你的SQL Server基本上算是安全了.
------------------------------------------------------------------------
其次,改默認埠,隱藏伺服器,減少被攻擊的可能性
SQL Server伺服器
--開始
--程序
--Microsoft SQL Server
--伺服器網路實用工具
--啟用的協議中"TCP/IP"
--屬性
--默認埠,輸入一個自已定義的埠,比如2433
--勾選隱藏伺服器
----------------------------------------------------------------------------
--管好sql的用戶,防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體對象具有的許可權)
--切換到你新增的用戶要控制的資料庫
use 你的庫名
go
--新增用戶
exec sp_addlogin 'test' --添加登錄
exec sp_grantdbaccess N'test' --使其成為當前資料庫的合法用戶
exec sp_addrolemember N'db_owner', N'test' --授予對自己資料庫的所有許可權
--這樣創建的用戶就只能訪問自己的資料庫,及資料庫中包含了guest用戶的公共表
go
--刪除測試用戶
exec sp_revokedbaccess N'test' --移除對資料庫的訪問許可權
exec sp_droplogin N'test' --刪除登錄
如果在企業管理器中創建的話,就用:
企業管理器--安全性--右鍵登錄--新建登錄
常規項
--名稱中輸入用戶名
--身份驗證方式根據你的需要選擇(如果是使用windows身份驗證,則要先在操作系統的用戶中新建用戶)
--默認設置中,選擇你新建的用戶要訪問的資料庫名
伺服器角色項
這個裡面不要選擇任何東西
資料庫訪問項
勾選你創建的用戶需要訪問的資料庫名
資料庫角色中允許,勾選"public","db_ownew"
確定,這樣建好的用戶與上面語句建立的用戶一樣
---------------------------------------------------------------------------
最後一步,為具體的用戶設置具體的訪問許可權,這個可以參考下面的最簡示例:
--添加只允許訪問指定表的用戶:
exec sp_addlogin '用戶名','密碼','默認資料庫名'
--添加到資料庫
exec sp_grantdbaccess '用戶名'
--分配整表許可權
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用戶名]
--分配許可權到具體的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用戶名]
-------------------------------------------------------------------
至於具體的安全設置和理論知道,參考SQL聯機幫助
『伍』 sqlserver 在對象上的許可權設置有哪些動作分別是什麼意義
以下粘貼自SQL Server 的幫助信息,文字太多不能貼全,你自己可在幫助中查到更多信息。
-----------------------------
每個 SQL Server 安全對象都有可以授予主體的關聯許可權。本主題提供了下列信息:
許可權命名約定
與特定的安全對象相關的許可權
SQL Server 許可權
許可權檢查演算法
示例
許可權命名約定
下面介紹命名許可權時遵循的一般約定:
CONTROL
為被授權者授予類似所有權的功能。被授權者實際上對安全對象具有所定義的所有許可權。也可以為已被授予 CONTROL
許可權的主體授予對安全對象的許可權。因為 SQL Server 安全模型是分層的,所以 CONTROL 許可權在特定范圍內隱含著對該范圍內的所有安全對象的
CONTROL 許可權。例如,對資料庫的 CONTROL
許可權隱含著對資料庫的所有許可權、對資料庫中所有組件的所有許可權、對資料庫中所有架構的所有許可權以及對資料庫的所有架構中的所有對象的許可權。
ALTER
授予更改特定安全對象的屬性(所有權除外)的許可權。當授予對某個范圍的 ALTER
許可權時,也授予更改、創建或刪除該范圍內包含的任何安全對象的許可權。例如,對架構的 ALTER 許可權包括在該架構中創建、更改和刪除對象的許可權。
ALTER ANY
<伺服器安全對象>,其中的伺服器安全對象可以是任何伺服器安全對象。
授予創建、更改或刪除伺服器安全對象的各個實例的許可權。例如,ALTER
ANY LOGIN 將授予創建、更改或刪除實例中的任何登錄名的許可權。
ALTER ANY
<資料庫安全對象>,其中的資料庫安全對象可以是資料庫級別的任何安全對象。
授予創建、更改或刪除資料庫安全對象的各個實例的許可權。例如,ALTER
ANY SCHEMA 將授予創建、更改或刪除資料庫中的任何架構的許可權。
TAKE OWNERSHIP
允許被授權者獲取所授予的安全對象的所有權。
IMPERSONATE <登錄名>
允許被授權者模擬該登錄名。
IMPERSONATE <用戶>
允許被授權者模擬該用戶。
CREATE <伺服器安全對象>
授予被授權者創建伺服器安全對象的許可權。
CREATE <資料庫安全對象>
授予被授權者創建資料庫安全對象的許可權。
CREATE
<包含在架構中的安全對象>
授予創建包含在架構中的安全對象的許可權。但是,若要在特定架構中創建安全對象,必須對該架構具有
ALTER 許可權。
VIEW DEFINITION
允許被授權者訪問元數據。
REFERENCES
表的 REFERENCES 許可權是創建引用該表的外鍵約束時所必需的。
對象的 REFERENCES
許可權是使用引用該對象的 WITH SCHEMABINDING 子句創建 FUNCTION 或 VIEW
時所必需的。
適用於特定安全對象的許可權
下表列出了主要的許可權類別以及可應用這些許可權的安全對象的種類。
許可權
適用於
SELECT
同義詞
表和列
表值函數 [Transact-SQL 和公共語言運行時 (CLR)] 和列
視圖和列
VIEW CHANGE TRACKING
表
架構
UPDATE
同義詞
表和列
視圖和列
REFERENCES
標量函數和聚合函數(Transact-SQL 和 CLR)
Service Broker 隊列
表和列
表值函數(Transact-SQL 和 CLR)和列
視圖和列
INSERT
同義詞
表和列
視圖和列
DELETE
同義詞
表和列
視圖和列
EXECUTE
過程(Transact-SQL 和 CLR)
標量函數和聚合函數(Transact-SQL 和 CLR)
同義詞
CLR 類型
RECEIVE
Service Broker 隊列
VIEW DEFINITION
過程(Transact-SQL 和 CLR)
Service Broker 隊列
標量函數和聚合函數(Transact-SQL 和 CLR)
同義詞
表
表值函數(Transact-SQL 和 CLR)
視圖
ALTER
過程(Transact-SQL 和 CLR)
標量函數和聚合函數(Transact-SQL 和 CLR)
Service Broker 隊列
表
表值函數(Transact-SQL 和 CLR)
視圖
TAKE OWNERSHIP
過程(Transact-SQL 和 CLR)
標量函數和聚合函數(Transact-SQL 和 CLR)
同義詞
表
表值函數(Transact-SQL 和 CLR)
視圖
CONTROL
過程(Transact-SQL 和 CLR)
標量函數和聚合函數(Transact-SQL 和 CLR)
Service Broker 隊列
同義詞
表
表值函數(Transact-SQL 和 CLR)
視圖
『陸』 SQL Server 2005 鐢ㄦ埛鏉冮檺璁劇疆
create 鏉冮檺[on 琛ㄥ悕] to 鏁版嵁搴撶敤鎴
姣斿傝達細
use sutDB
go
--涓簔hangsanDBUser鍒嗛厤瀵硅〃studInfo鐨剆elect銆乮nsert銆乽pdate鏉冮檺
create select,insert,update on studInfo to zhangsanDBuser
--涓簂isiDBUser 鍒嗛厤寤鴻〃鐨勬潈闄
create create table to lisiDBUser
鑷充簬浣犺淬傝佽╀笉鍚岀殑鐧誨綍鍚嶇湅瑙佷粬鑷宸卞簲璇ョ湅瑙佺殑琛ㄣ傚叾鏁綆浠栫殑琛ㄧ湅涓嶈併傝繖涓涓嶅彲鑳界殑銆備絾鏄瀵硅佹棶浜庡叾浠栫殑琛ㄤ粬鏍逛寒鍚瑁ゆ湰娌℃湁璁塊棶鏉冪殑銆備綘榪炴帴鐨勬槸鍚屼竴涓瀹炰緥鍚嶃傛墍鏈夌殑琛ㄩ兘鍦ㄩ噷闈㈢殑銆傛墍浠ラ兘鍙浠ョ湅寰楄侊紝瑕佹槸鍒浜烘潵榪炴帴浣犵殑鏁版嵁搴撱傞偅灝卞彧瑕佺粰浜堟潈闄愬氨琛屼簡鐨勩