黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

編程管理SQL SERVER的帳號.sql

系統 2272 0

編程管理SQL SERVER的帳號?
?
每個人都關心數據安全。
如果不關心的話,可能沒有意識到訪問服務器中的敏感數據是非常容易的。
因為SQL SERVER在這方面已經替我們考慮過了,
所以在我們開發應用程序就可以直接使用SQL SERVER的安全策略。

?在SQL SERVER中,我們可以在ENTERPRISE MANAGER中創建一個登錄帳號,
并且賦予一定的權限,如果要做到我們的應用程序中呢?


==============================================================================
SQL SERVER提供了如下系統過程


▲▲一、SP_ADDLOGIN
創建新的 Microsoft SQL Server 登錄,使用戶得以連接使用 SQL Server 身份驗證的 SQL Server 實例。

語法
sp_addlogin [ @loginame = ] 'login'
??? [ , [ @passwd = ] 'password' ]
??? [ , [ @defdb = ] 'database' ]
??? [ , [ @deflanguage = ] 'language' ]
??? [ , [ @sid = ] sid ]
??? [ , [ @encryptopt = ] 'encryption_option' ]

參數
[@loginame =] 'login'
登錄的名稱。login 的數據類型為 sysname,沒有默認設置。

[@passwd =] 'password'
登錄密碼。password 的數據類型為 sysname,默認設置為 NULL。sp_addlogin 執行后,password 被加密并存儲在系統表中。

[@defdb =] 'database'
登錄的默認數據庫(登錄后登錄所連接到的數據庫)。database 的數據類型為 sysname,默認設置為 master。

[@deflanguage =] 'language'
用戶登錄到 SQL Server 時系統指派的默認語言。language 的數據類型為 sysname,默認設置為 NULL。如果沒有指定 language,那么 language 被設置為服務器當前的默認語言(由 sp_configure 配置變量 default language 定義)。更改服務器的默認語言不會更改現有登錄的默認語言。language 保持與添加登錄時所使用的默認語言相同。

[@sid =] sid
安全標識號 (SID)。sid 的數據類型為 varbinary(16),默認設置為 NULL。如果 sid 為 NULL,則系統為新登錄生成 SID。盡管使用 varbinary 數據類型,非 NULL 的值也必須正好為 16 個字節長度,且不能事先存在。SID 很有用,例如,如果要編寫 SQL Server 登錄腳本,或要將 SQL Server 登錄從一臺服務器移動到另一臺,并且希望登錄在服務器間具有相同的 SID 時。

[@encryptopt =] 'encryption_option'
指定當密碼存儲在系統表中時,密碼是否要加密。encryption_option 的數據類型為 varchar(20),可以是下列值之一。
值?????描述
------------------- ------------------------------------------------------------
NULL????加密密碼。這是默認設置。
skip_encryption??密碼已加密。SQL Server 應該存儲值而且不用重新對其加密。
skip_encryption_old?已提供的密碼由 SQL Server 較早版本加密。SQL Server 應該存儲值而且不用重新對其加密。此選項只供升級使用。


▲▲二、SP_GRANTDBACCESS
為 Microsoft SQL Server 登錄或 Microsoft Windows NT 用戶或組在當前數據庫中添加一個安全帳戶,并使其能夠被授予在數據庫中執行活動的權限。

語法:
sp_grantdbaccess [@loginame =] 'login'
??? [,[@name_in_db =] 'name_in_db' [OUTPUT]]

參數:
[@loginame =] 'login'
當前數據庫中新安全帳戶的登錄名稱。Windows NT 組和用戶必須用 Windows NT 域名限定,格式為"域\用戶",例如 LONDON\Joeb。登錄不能使用數據庫中已有的帳戶作為別名。login 的數據類型為 sysname,沒有默認值。

[@name_in_db =] 'name_in_db' [OUTPUT]
數據庫中帳戶的名稱。name_in_db 是 sysname 類型的 OUTPUT 變量,默認值為 NULL。如果沒有指定,則使用 login。如果將其指定為 NULL 值的 OUTPUT 變量,則設置 @name_in_db 為 login。當前數據庫不必存在 name_in_db。


▲▲三、SP_DROPLOGIN
刪除 Microsoft SQL Server 登錄,以阻止使用該登錄名訪問 SQL Server。

語法
sp_droplogin [ @loginame = ] 'login'

參數
[@loginame =] 'login'
將被刪除的登錄。login 的數據類型為 sysname,沒有默認值。login 必須已經存在于 SQL Server 中。


▲▲四、SP_REVOKEDBACCESS
從當前數據庫中刪除安全帳戶。

語法
sp_revokedbaccess [ @name_in_db = ] 'name'

參數
[@name_in_db =] 'name'
是要刪除的帳戶名。name 的數據類型為 sysname,無默認值。name 可以是 Microsoft? SQL Server? 用戶名或 Microsoft Windows NT? 用戶名或組名,而且必須存在于當前數據庫中。當指定 Windows NT 用戶或組時,請指定該 Windows NT 用戶或組在數據庫中可被識別的名稱(即用 sp_grantdbaccess 添加的名稱)。


▲▲五、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_procedure | extended_procedure }
??????? | ON { user_defined_function }
??? }
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]


▲▲六、REVOKE
刪除以前在當前數據庫內的用戶上授予或拒絕的權限。

語法
語句權限:
REVOKE { ALL | statement [ ,...n ] }
FROM security_account [ ,...n ]

對象權限:

REVOKE [ GRANT OPTION FOR ]
??? { ALL [ PRIVILEGES ] | permission [ ,...n ] }
??? {
??????? [ ( column [ ,...n ] ) ] ON { table | view }
??????? | ON { table | view } [ ( column [ ,...n ] ) ]
??????? | ON { stored_procedure | extended_procedure }
??????? | ON { user_defined_function }
??? }
{ TO | FROM }
??? security_account [ ,...n ]
[ CASCADE ]
[ AS { group | role } ]


▲▲SP_PASSWORD
添加或更改 Microsoft? SQL Server? 登錄的密碼。

語法
sp_password [ [ @old = ] 'old_password' , ]
??? { [ @new =] 'new_password' }
??? [ , [ @loginame = ] 'login' ]

參數
[@old =] 'old_password'
是舊密碼。old_password 為 sysname 類型,其默認值為 NULL。

[@new =] 'new_password'
是新密碼。new_password 為 sysname 類型,無默認值。如果沒有使用命名參數,就必須指定 old_password。

[@loginame =] 'login'
是受密碼更改影響的登錄名。login 為 sysname 類型,其默認值為 NULL。login 必須已經存在,并且只能由 sysadmin 固定服務器角色的成員指定。


=============================================================================
應用實例:

--添加
--添加用戶:
exec sp_addlogin '用戶名','密碼','默認數據庫名'

--添加到數據庫
exec sp_grantdbaccess '用戶名','數據庫名'

--分本權限
grant insert,select,update,delete on table1 to public

--刪除????????
--刪除權限
revoke insert,delete on table1 from public

--刪除數據庫中的用戶
exec sp_revokedbaccess '用戶名'

--刪除用戶
exec sp_droplogin '用戶名'


--示例2

--創建僅對某個數據庫具有所有權限的用戶
--切換到你新增的用戶要控制的數據庫
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'?--刪除登錄

編程管理SQL SERVER的帳號.sql


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論