⑴ sql 中角色許可權授予問題
語法:
sp_addrolemember[@rolename=]'role',
[@membername=]'security_account'
參數:[@rolename=]'role'
當前資料庫中SQLServer角色的名稱。role的數據類型為sysname,沒有默認值。
[@membername=]'security_account'
添加到角色的安全帳戶。security_account的數據類型為sysname,沒有默認值。security_account可以是所有有效的SQLServer用戶、SQLServer角色或是所有已授權訪問當前資料庫的MicrosoftWindowsNT®用戶或組。
⑵ 怎麼設置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中如何用什麼語句給用戶授權
sql語言用grant語句向用戶授予操作許可權,grant語句的一般格式為:
grant
<許可權>[,<許可權>]...
[on
<對象類型>
<對象名>]
to
<用戶>[,<用戶>]...
[with
grant
option];
其語義為:將對指定操作對象的指定操作許可權授予指定的用戶。
不同類型的操作對象有不同的操作許可權,常見的操作許可權如表3-4所示。
表3-4
不同對象類型允許的操作許可權
對象
對象類型
操作許可權
屬性列
table
select,
insert,
update,
delete
all
privieges
視圖
table
select,
insert,
update,
delete
all
privieges
基本表
table
select,
insert,
update,
alter,
index,delete
all
privieges
資料庫
database
createtab
詳細信息…
接受許可權的用戶可以是一個或多個具體用戶,也可以是public即全體用戶。
如果指定了with
grant
option子句,則獲得某種許可權的用戶還可以把這種許可權再授予別的用戶。如果沒有指定with
grant
option子句,則獲得某種許可權的用戶只能使用該許可權,但不能傳播該許可權。
例1
把查詢student表許可權授給用戶u1
grant
select
on
table
student
to
u1;
例2
把對student表和course表的全部許可權授予用戶u2和u3
grant
all
priviliges
on
table
student,
course
to
u2,
u3;
例3
把對表sc的查詢許可權授予所有用戶
grant
select
on
table
sc
to
public;
例4
把查詢student表和修改學生學號的許可權授給用戶u4
詳細信息…
這里實際上要授予u4用戶的是對基本表student的select許可權和對屬性列sno的update許可權。授予關於屬性列的許可權時必須明確指出相應屬性列名。完成本授權操作的sql語句為:
grant
update(sno),
select
on
table
student
to
u4;
例5
把對表sc的insert許可權授予u5用戶,並允許他再將此許可權授予其他用戶
grant
insert
on
table
sc
to
u5
with
grant
option;
詳細信息…
執行此sql語句後,u5不僅擁有了對表sc的insert許可權,還可以傳播此許可權,即由u5用戶發上述grant命令給其他用戶。
例如u5可以將此許可權授予u6:
grant
insert
on
table
sc
to
u6
with
grant
option;
同樣,u6還可以將此許可權授予u7:
grant
insert
on
table
sc
to
u7;
因為u6未給u7傳播的許可權,因此u7不能再傳播此許可權。
例6
dba把在資料庫s_c中建立表的許可權授予用戶u8
grant
createtab
on
database
s_c
to
u8;
⑷ SQL2005中怎樣把使用一個角色的許可權授予給一個用戶
1. SQL資料庫分配許可權
打開SQL-Server管理工具安全性登陸名右鍵(新建登陸名)
輸入相應的信息(這里要去掉強制實施密碼策略,強制密碼過期,用戶在下次登錄時必須修改密碼的選擇)
用戶映射選擇我們要設置許可權的資料庫通過選擇資料庫角色成員身份來設置新建用戶的許可權
一般對整個庫做許可權的時候都是需要所有許可權勾選db_owner就可以了(確定)
這樣就可以用我們新建的這個用戶名來訪問我們的資料庫伺服器了,而且這個用戶名只擁有我們所勾選的資料庫的所有許可權。
2. SQL資料庫對每個表分配許可權
打開SQL-Server管理工具安全性登陸名右鍵(新建登陸名)
輸入相應的信息(這里要去掉強制實施密碼策略,強制密碼過期,用戶在下次登錄時必須修改密碼的選擇)
用戶映射選擇我們要設置許可權的資料庫通過選擇資料庫角色成員身份來設置新建用戶的許可權
因為我們要對每個表進行單獨的設置所以這里我們就不勾選db_owner了
打開我們剛才勾選的test資料庫安全性用戶中看到我們剛才新建的那個用戶了。
找到新建的用戶名右鍵屬性
安全對像
添加
特定類型的所有對象確定
對象類型選擇表
確定這樣我們就能看到test資料庫中的所有表了
接著我們再對每個表設置許可權
我對兩個表都是設置的Select許可權確定這樣我們用test_name登陸test資料庫的時候只能對其中的兩個表做Select操作不能做其它操作
⑸ 怎麼設置SQL資料庫用戶許可權
設置SQL資料庫用戶許可權的方法如下: 點擊進入資料庫級別的「安全性」、「登錄名」、「新建登錄名」;在「常規」選項卡中,創建登陸名,並設置默認的資料庫;在「用戶映射」選項卡中,勾選需要設置的資料庫,並設置「架構」,點擊「確認」按鈕,完成創建用戶的操作;在「許可權」選項卡中,依次點擊「添加」、「瀏覽」、「選擇對象」;點擊「確認」按鈕後即可。
⑹ 增加用戶與分配許可權,SQL語句怎麼寫
增加用戶
-------------------------------------------------------------------------
USE master
GO
sp_addlogin @loginame = 'TempWorker', @password = 'fff', defdb = 'sales'
GO
USE sales
GO
sp_grantdbaccess 'TempWorker'
GO
許可權
-------------------------------------------------------------------------------------
GRANT
在安全系統中創建項目,使當前資料庫中的用戶得以處理當前資料庫中的數據或執行特定的 Transact-SQL 語句。
語法
語句許可權:
GRANT { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]
對象許可權:
GRANT
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procere | extended_procere }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]
示例
A. 授予語句許可權
下面的示例給用戶 Mary 和 John 以及 Windows NT 組 Corporate\BobJ 授予多個語句許可權。
GRANT CREATE DATABASE, CREATE TABLE
TO Mary, John, [Corporate\BobJ]
B. 在許可權層次中授予對象許可權
下例顯示許可權的優先順序。首先,給 public 角色授予 SELECT 許可權。然後,將特定的許可權授予用戶 Mary、John 和 Tom。於是這些用戶就有了對 authors 表的所有許可權。
USE pubs
GO
GRANT SELECT
ON authors
TO public
GO
GRANT INSERT, UPDATE, DELETE
ON authors
TO Mary, John, Tom
GO
C. 給 SQL Server 角色授予許可權
下面的示例將 CREATE TABLE 許可權授予 Accounting 角色的所有成員。
GRANT CREATE TABLE TO Accounting
D. 用 AS 選項授予許可權
用戶 Jean 擁有表 Plan_Data。Jean 將表 Plan_Data 的 SELECT 許可權授予 Accounting 角色(指定 WITH GRANT OPTION 子句)。用戶 Jill 是 Accounting 的成員,他要將表 Plan_Data 上的 SELECT 許可權授予用戶 Jack,Jack 不是 Accounting 的成員。
因為對表 Plan_Data 用 GRANT 語句授予其他用戶 SELECT 許可權的許可權是授予 Accounting 角色而不是顯式地授予 Jill,不能因為已授予 Accounting 角色中成員該許可權,而使 Jill 能夠授予表的許可權。Jill 必須用 AS 子句來獲得 Accounting 角色的授予許可權。
/* User Jean */
GRANT SELECT ON Plan_Data TO Accounting WITH GRANT OPTION
/* User Jill */
GRANT SELECT ON Plan_Data TO Jack AS Accounting