SQL Server 基本權(quán)限管理[備忘]
在SQL Server 中,使用系統(tǒng)的存儲(chǔ)過(guò)程管理登錄名,主要包括:
sp_addlogin sp_droplogin sp_helploginssp_grantlogin sp_revokelogin sp_denylogin
以下代碼實(shí)現(xiàn)簡(jiǎn)單的三層權(quán)限:
use S100801A
go
--======================= 數(shù)據(jù)庫(kù)登錄 =======================
--添加登錄用戶(sp_addlogin '用戶名','密碼','默認(rèn)數(shù)據(jù)庫(kù)名')
exec sp_addlogin N'xg',N'xg123'
-- 或者
exec sp_addlogin N'xg',N'xg123',N'master'
--移除登錄用戶
exec sp_droplogin N'xg'
--======================= 數(shù)據(jù)庫(kù)訪問(wèn) =======================
--添加數(shù)據(jù)庫(kù)訪問(wèn)用戶(sp_grantdbaccess '用戶名','數(shù)據(jù)庫(kù)名')
use S100801A
go
exec sp_grantDBaccess N'xg',N'db_xg'
--移除數(shù)據(jù)庫(kù)訪問(wèn)用戶
exec sp_revokeDBaccess N'db_xg'
--======================= 數(shù)據(jù)庫(kù)權(quán)限 =======================
--授予對(duì)數(shù)據(jù)庫(kù)的所有權(quán)限(sp_addRoleMember '角色','用戶')
exec sp_addRoleMember N'db_owner',N'db_xg'
--只能訪問(wèn)自己的數(shù)據(jù)庫(kù),及guest用戶的公共表
--移除對(duì)數(shù)據(jù)庫(kù)的所有權(quán)限(sp_dropRoleMember '角色','用戶')
exec sp_dropRoleMember N'db_owner',N'db_xg'
go
--======================= 數(shù)據(jù)庫(kù)登錄 =======================
--添加登錄用戶(sp_addlogin '用戶名','密碼','默認(rèn)數(shù)據(jù)庫(kù)名')
exec sp_addlogin N'xg',N'xg123'
-- 或者
exec sp_addlogin N'xg',N'xg123',N'master'
--移除登錄用戶
exec sp_droplogin N'xg'
--======================= 數(shù)據(jù)庫(kù)訪問(wèn) =======================
--添加數(shù)據(jù)庫(kù)訪問(wèn)用戶(sp_grantdbaccess '用戶名','數(shù)據(jù)庫(kù)名')
use S100801A
go
exec sp_grantDBaccess N'xg',N'db_xg'
--移除數(shù)據(jù)庫(kù)訪問(wèn)用戶
exec sp_revokeDBaccess N'db_xg'
--======================= 數(shù)據(jù)庫(kù)權(quán)限 =======================
--授予對(duì)數(shù)據(jù)庫(kù)的所有權(quán)限(sp_addRoleMember '角色','用戶')
exec sp_addRoleMember N'db_owner',N'db_xg'
--只能訪問(wèn)自己的數(shù)據(jù)庫(kù),及guest用戶的公共表
--移除對(duì)數(shù)據(jù)庫(kù)的所有權(quán)限(sp_dropRoleMember '角色','用戶')
exec sp_dropRoleMember N'db_owner',N'db_xg'
/*==========================================================================
重要事項(xiàng):
后續(xù)版本的 Microsoft SQL Server 中,將刪除使用‘系統(tǒng)存儲(chǔ)過(guò)程’實(shí)現(xiàn)訪問(wèn)權(quán)限的相關(guān)功能。
為了避免在新的開(kāi)發(fā)工作中使用該功能,應(yīng)著手修改實(shí)現(xiàn)該功能的方式。
==========================================================================*/
重要事項(xiàng):
后續(xù)版本的 Microsoft SQL Server 中,將刪除使用‘系統(tǒng)存儲(chǔ)過(guò)程’實(shí)現(xiàn)訪問(wèn)權(quán)限的相關(guān)功能。
為了避免在新的開(kāi)發(fā)工作中使用該功能,應(yīng)著手修改實(shí)現(xiàn)該功能的方式。
==========================================================================*/
改用實(shí)現(xiàn)方式如下:
--以下示例首先創(chuàng)建名為‘xg’且具有密碼的服務(wù)器登錄名,
--然后在數(shù)據(jù)庫(kù)‘S100801A’中創(chuàng)建用戶‘a(chǎn)bo_xg’對(duì)應(yīng)登錄名‘xg’。
--添加登錄用戶
create login xg with password = 'xg123';
--移除登錄用戶
drop login xg;
--添加數(shù)據(jù)庫(kù)訪問(wèn)用戶
use S100801A;
create user dbo_xg for login xg;
go
--移除數(shù)據(jù)庫(kù)訪問(wèn)用戶
use S100801A;
drop user dbo_xg;
go
--分布權(quán)限
grant insert,select,update,delete on students to public --dbo_xg
revoke insert,select,update,delete on students from public --dbo_xg
-- grant all on Students to aa_0801
-- revoke all on students from aa_0801
--然后在數(shù)據(jù)庫(kù)‘S100801A’中創(chuàng)建用戶‘a(chǎn)bo_xg’對(duì)應(yīng)登錄名‘xg’。
--添加登錄用戶
create login xg with password = 'xg123';
--移除登錄用戶
drop login xg;
--添加數(shù)據(jù)庫(kù)訪問(wèn)用戶
use S100801A;
create user dbo_xg for login xg;
go
--移除數(shù)據(jù)庫(kù)訪問(wèn)用戶
use S100801A;
drop user dbo_xg;
go
--分布權(quán)限
grant insert,select,update,delete on students to public --dbo_xg
revoke insert,select,update,delete on students from public --dbo_xg
-- grant all on Students to aa_0801
-- revoke all on students from aa_0801
使用SQL 命令分配權(quán)限時(shí),可以通過(guò)使用 grant、deny、revoke 等命令實(shí)現(xiàn)。
| 作者: XuGang 網(wǎng)名:鋼鋼 |
| 出處: http://xugang.cnblogs.com |
| 聲明: 本文版權(quán)歸作者和博客園共有。轉(zhuǎn)載時(shí)必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接地址! |
posted on 2011-01-20 15:29 鋼鋼 閱讀(1661) 評(píng)論(1) 收藏 舉報(bào)

浙公網(wǎng)安備 33010602011771號(hào)