sql設置表許可權
declare@roworderint
declare@namevarchar(50)
declare@strvarchar(500)
declare@cntint
selectidentity(int,1,1)roworder,nameinto#tmpfromsysobjectswherextype='u'--namelike'PLMST_%'
select@cnt=count(*)from#tmp
set@roworder=1
while@roworder<=@cnt
begin
select@name=namefrom#tmpwhereroworder=@roworder
--print@name
set@str='grantallon'+@name+'to用戶名'
--print@str
exec(@str)
set@roworder=@roworder+1
end
這段代碼會取出所有表名,並挨個對每張表做grant操作。不知道能不能滿足樓主的要求
『貳』 SQLServer中怎麼設定用戶對某張表的許可權
方法一、由Management Studio中的表上右鍵選屬性(Properties),左邊選許可權(Permissions),右邊中間添加和選中某個User或Role,下面選中或移除某個許可權。
方法二、語句 : Grant 許可權 On table 表名 To 用戶名
『叄』 sql server 表的許可權如何解決
你搞的有點復雜了,你既然都有了Aa的許可權了,直接修改不就行了么。
再說了,也可以讓資料庫管理員給你的角色授權嘛,怎麼還新建一個庫,沒有必要。
==============================================================
這事兒啊,還得找你們資料庫管理員。可以對單張表授權。
新建登陸用戶,不用給庫伺服器角色,資料庫角色就用默認的public。
然後,在查詢分析器中,對創建的該角色,特殊授權。
比如我們創建了登陸名為rr的用戶,僅僅把tb這張表給他用:
GRANT SELECT,delete,insert on tb TO rr
他對其他表是操作不了的。
『肆』 請問運行什麼sql語句能單獨設置某個資料庫表許可權
許可權是針對用戶的,你只能設置讓某一些用戶不能更新一張表,表是沒有許可權的
比如你像讓用戶abc_不能更新表abc_admin你可以這樣
revoke all on abc_admin from abc_
這樣abc_就對 abc_admin 沒有任何許可權了
此處的 all 可以替換你想要的比如 insert,update,delele等許可權
『伍』 SQL 2008 表 許可權設置
use test
go
create user u_name for login u_name
grant select,insert on article to u_name
--可視許可權
grant view definition ton article to u_name
『陸』 如何判斷sql資料庫創建表許可權
--創建兩個測試表
CREATE TABLE tb1(id int,value int)
INSERT tb1 VALUES(1,10)
CREATE TABLE tb2(id int,value int)
INSERT tb1 VALUES(1,10)
GO
--創建登錄
CREATE LOGIN Liang WITH PASSWORD='[email protected]';
--創建用戶
CREATE USER Liang FROM LOGIN Liang;
--授予用戶對tb1有UPDATE某個列的許可權,tb2隻有SELECT許可權
GRANT UPDATE(value) ON tb1 TO Liang
GRANT SELECT ON tb1 TO Liang
GRANT SELECT ON tb2 TO Liang
GO
--模擬用戶Liang對tb1表進行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb1 SET
value=20
WHERE id=1
REVERT
SELECT * FROM tb1
/*
id value
----------- -----------
1 20
(1 行受影響)
*/
--模擬用戶Liang對tb2表進行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb2 SET
value=20
WHERE id=1
REVERT
/*
消息 229,級別 14,狀態 5,第 23 行
拒絕了對對象 'tb2' (資料庫 'tempdb',架構 'dbo')的 UPDATE 許可權。
*/
GO
--刪除測試
DROP TABLE tb1,tb2
DROP USER Liang
DROP LOGIN Liang
--要控制對資料庫的許可權, 可以參考下面的:
-- 防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體對象具有的許可權)
--切換到你新增的用戶要控制的資料庫
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中在一個資料庫中的各個表的許可權怎麼設定啊 是一個資料庫中各個表的許可權 高手指點下 謝謝
如果是使用圖形界面管理工具,可以在表上點右鍵,選擇屬性|許可權,然後在相應的許可權項目上打勾就可以了。
如果是使用sql語句,可以如下:
grant select|insert|update|delete on tablename to username
deny select|insert|update|delete on tablename to username
revoke select|insert|update|delete on tablename from username
grant是賦予許可權,deny是拒絕許可權,revoke是撤消許可權,而select|insert|update|delete是可以設置的各個許可權項目。
『捌』 如何給SQL Server資料庫設置修改表結構的許可權
== 給某個登錄賬號設置許可權?
首先你需要有一個有給其他賬號授權修改表結構許可權的賬號,
登錄這個賬號,然後編輯你要授權的賬號,執行grant語句授權
『玖』 sql 怎樣創建表許可權
--創建兩個測試表
CREATE TABLE tb1(id int,value int)
INSERT tb1 VALUES(1,10)
CREATE TABLE tb2(id int,value int)
INSERT tb1 VALUES(1,10)
GO
--創建登錄
CREATE LOGIN Liang WITH PASSWORD='[email protected]';
--創建用戶
CREATE USER Liang FROM LOGIN Liang;
--授予用戶對tb1有UPDATE某個列的許可權,tb2隻有SELECT許可權
GRANT UPDATE(value) ON tb1 TO Liang
GRANT SELECT ON tb1 TO Liang
GRANT SELECT ON tb2 TO Liang
GO
--模擬用戶Liang對tb1表進行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb1 SET
value=20
WHERE id=1
REVERT
SELECT * FROM tb1
/*
id value
----------- -----------
1 20
(1 行受影響)
*/
--模擬用戶Liang對tb2表進行UPDATE
EXECUTE AS USER='Liang'
UPDATE tb2 SET
value=20
WHERE id=1
REVERT
/*
消息 229,級別 14,狀態 5,第 23 行
拒絕了對對象 'tb2' (資料庫 'tempdb',架構 'dbo')的 UPDATE 許可權。
*/
GO
--刪除測試
DROP TABLE tb1,tb2
DROP USER Liang
DROP LOGIN Liang
--要控制對資料庫的許可權, 可以參考下面的:
-- 防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體對象具有的許可權)
--切換到你新增的用戶要控制的資料庫
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 [用戶名]