国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

SQLServer精確授權(quán)方法

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 16:28:08
文檔

SQLServer精確授權(quán)方法

SQLServer精確授權(quán)方法:參考文獻(xiàn) 正文 要想成功訪問 SQL Server 數(shù)據(jù)庫中的數(shù)據(jù), 我們需要兩個方面的授權(quán): 獲得準(zhǔn)許連接 SQL Server 服務(wù)器的權(quán)利; 獲得訪問特定數(shù)據(jù)庫中數(shù)據(jù)的權(quán)利(select, update, delete, create table ...)。 假設(shè),我們準(zhǔn)備建立一個 dba
推薦度:
導(dǎo)讀SQLServer精確授權(quán)方法:參考文獻(xiàn) 正文 要想成功訪問 SQL Server 數(shù)據(jù)庫中的數(shù)據(jù), 我們需要兩個方面的授權(quán): 獲得準(zhǔn)許連接 SQL Server 服務(wù)器的權(quán)利; 獲得訪問特定數(shù)據(jù)庫中數(shù)據(jù)的權(quán)利(select, update, delete, create table ...)。 假設(shè),我們準(zhǔn)備建立一個 dba

參考文獻(xiàn) 正文 要想成功訪問 SQL Server 數(shù)據(jù)庫中的數(shù)據(jù), 我們需要兩個方面的授權(quán): 獲得準(zhǔn)許連接 SQL Server 服務(wù)器的權(quán)利; 獲得訪問特定數(shù)據(jù)庫中數(shù)據(jù)的權(quán)利(select, update, delete, create table ...)。 假設(shè),我們準(zhǔn)備建立一個 dba 數(shù)據(jù)庫帳戶,用來

參考文獻(xiàn)


正文

要想成功訪問 SQL Server 數(shù)據(jù)庫中的數(shù)據(jù), 我們需要兩個方面的授權(quán):

  1. 獲得準(zhǔn)許連接 SQL Server 服務(wù)器的權(quán)利;
  2. 獲得訪問特定數(shù)據(jù)庫中數(shù)據(jù)的權(quán)利(select, update, delete, create table ...)。

假設(shè),我們準(zhǔn)備建立一個 dba 數(shù)據(jù)庫帳戶,用來管理數(shù)據(jù)庫 mydb。

1. 首先在 SQL Server 服務(wù)器級別,創(chuàng)建登陸帳戶(create login)

--創(chuàng)建登陸帳戶(create login)
create login dba with password='abcd1234@', default_database=mydb

登陸帳戶名為:“dba”,登陸密碼:abcd1234@”,默認(rèn)連接到的數(shù)據(jù)庫:“mydb”。 這時候,dba 帳戶就可以連接到 SQL Server 服務(wù)器上了。但是此時還不能 訪問數(shù)據(jù)庫中的對象(嚴(yán)格的說,此時 dba 帳戶默認(rèn)是 guest 數(shù)據(jù)庫用戶身份, 可以訪問 guest 能夠訪問的數(shù)據(jù)庫對象)。

要使 dba 帳戶能夠在 mydb 數(shù)據(jù)庫中訪問自己需要的對象, 需要在數(shù)據(jù)庫 mydb 中建立一個“數(shù)據(jù)庫用戶”,賦予這個“數(shù)據(jù)庫用戶” 某些訪問權(quán)限,并且把登陸帳戶“dba” 和這個“數(shù)據(jù)庫用戶” 映射起來。 習(xí)慣上,“數(shù)據(jù)庫用戶” 的名字和 “登陸帳戶”的名字相同,即:“dba”。 創(chuàng)建“數(shù)據(jù)庫用戶”和建立映射關(guān)系只需要一步即可完成:

2. 創(chuàng)建數(shù)據(jù)庫用戶(create user):

--為登陸賬戶創(chuàng)建數(shù)據(jù)庫用戶(create user),在mydb數(shù)據(jù)庫中的security中的user下可以找到新創(chuàng)建的dba
create user dba for login dba with default_schema=dbo

并指定數(shù)據(jù)庫用戶“dba” 的默認(rèn) schema 是“dbo”。這意味著 用戶“dba” 在執(zhí)行“select * from t”,實際上執(zhí)行的是 “select * from dbo.t”。

3. 通過加入數(shù)據(jù)庫角色,賦予數(shù)據(jù)庫用戶“dba”權(quán)限:

--通過加入數(shù)據(jù)庫角色,賦予數(shù)據(jù)庫用戶“db_owner”權(quán)限
exec sp_addrolemember 'db_owner', 'dba'

此時,dba 就可以全權(quán)管理數(shù)據(jù)庫 mydb 中的對象了。

如果想讓 SQL Server 登陸帳戶“dba”訪問多個數(shù)據(jù)庫,比如 mydb2。 可以讓 sa 執(zhí)行下面的語句:

--讓 SQL Server 登陸帳戶“dba”訪問多個數(shù)據(jù)庫
use mydb2
go
create user dba for login dba with default_schema=dbo
go
exec sp_addrolemember 'db_owner', 'dba'
go

此時,dba 就可以有兩個數(shù)據(jù)庫 mydb, mydb2 的管理權(quán)限了!

完整的代碼示例

--創(chuàng)建數(shù)據(jù)庫mydb和mydb2

--在mydb和mydb2中創(chuàng)建測試表,默認(rèn)是dbo這個schema
CREATE TABLE DEPT
 (DEPTNO int primary key,
 DNAME VARCHAR(14),
 LOC VARCHAR(13) );

--插入數(shù)據(jù)
INSERT INTO DEPT VALUES (101, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (201, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (301, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (401, 'OPERATIONS', 'BOSTON');


--查看數(shù)據(jù)庫schema, user 的存儲過程
select * from sys.database_principals
select * from sys.schemas 
select * from sys.server_principals

--創(chuàng)建登陸帳戶(create login)
create login dba with password='abcd1234@', default_database=mydb

--為登陸賬戶創(chuàng)建數(shù)據(jù)庫用戶(create user),在mydb數(shù)據(jù)庫中的security中的user下可以找到新創(chuàng)建的dba
create user dba for login dba with default_schema=dbo

--通過加入數(shù)據(jù)庫角色,賦予數(shù)據(jù)庫用戶“db_owner”權(quán)限
exec sp_addrolemember 'db_owner', 'dba'

--讓 SQL Server 登陸帳戶“dba”訪問多個數(shù)據(jù)庫
use mydb2
go
create user dba for login dba with default_schema=dbo
go
exec sp_addrolemember 'db_owner', 'dba'
go

--禁用登陸帳戶
alter login dba disable
--啟用登陸帳戶
alter login dba enable

--登陸帳戶改名
alter login dba with name=dba_tom

--登陸帳戶改密碼: 
alter login dba with password='aabb@ccdd'

--數(shù)據(jù)庫用戶改名: 
alter user dba with name=dba_tom

--更改數(shù)據(jù)庫用戶 defult_schema: 
alter user dba with default_schema=sales

--刪除數(shù)據(jù)庫用戶: 
drop user dba

--刪除 SQL Server登陸帳戶: 
drop login dba

使用存儲過程來完成用戶創(chuàng)建

下面一個實例來說明在sqlserver中如何使用存儲過程創(chuàng)建角色,重建登錄,以及如何為登錄授權(quán)等問題。

/*--示例說明
 示例在數(shù)據(jù)庫InsideTSQL2008中創(chuàng)建一個擁有表HR.Employees的所有權(quán)限、擁有表Sales.Orders的SELECT權(quán)限的角色r_test
 隨后創(chuàng)建了一個登錄l_test,然后在數(shù)據(jù)庫InsideTSQL2008中為登錄l_test創(chuàng)建了用戶賬戶u_test
 同時將用戶賬戶u_test添加到角色r_test中,使其通過權(quán)限繼承獲取了與角色r_test一樣的權(quán)限
 最后使用DENY語句拒絕了用戶賬戶u_test對表HR.Employees的SELECT權(quán)限。
 經(jīng)過這樣的處理,使用l_test登錄SQL Server實例后,它只具有表Sales.Orders的select權(quán)限和對表HR.Employees出select外的所有權(quán)限。
--*/


USE InsideTSQL2008

--創(chuàng)建角色 r_test
EXEC sp_addrole 'r_test'

--添加登錄 l_test,設(shè)置密碼為pwd,默認(rèn)數(shù)據(jù)庫為pubs
EXEC sp_addlogin 'l_test','a@cd123','InsideTSQL2008'

--為登錄 l_test 在數(shù)據(jù)庫 pubs 中添加安全賬戶 u_test
EXEC sp_grantdbaccess 'l_test','u_test'

--添加 u_test 為角色 r_test 的成員
EXEC sp_addrolemember 'r_test','u_test'


--用l_test登陸,發(fā)現(xiàn)在SSMS中找不到仍和表,因此執(zhí)行下述兩條語句出錯。
select * from Sales.Orders
select * from HR.Employees

--授予角色 r_test 對 HR.Employees 表的所有權(quán)限
GRANT ALL ON HR.Employees TO r_test
--The ALL permission is deprecated and maintained only for compatibility. 
--It DOES NOT imply ALL permissions defined on the entity.
--ALL 權(quán)限已不再推薦使用,并且只保留用于兼容性目的。它并不表示對實體定義了 ALL 權(quán)限。

--測試可以查詢表HR.Employees,但是Sales.Orders無法查詢
select * from HR.Employees


--如果要收回權(quán)限,可以使用如下語句。(可選擇執(zhí)行)
revoke all on HR.Employees from r_test
--ALL 權(quán)限已不再推薦使用,并且只保留用于兼容性目的。它并不表示對實體定義了 ALL 權(quán)限。


--授予角色 r_test 對 Sales.Orders 表的 SELECT 權(quán)限
GRANT SELECT ON Sales.Orders TO r_test

--用l_test登陸,發(fā)現(xiàn)可以查詢Sales.Orders和HR.Employees兩張表
select * from Sales.Orders
select * from HR.Employees

--拒絕安全賬戶 u_test 對 HR.Employees 表的 SELECT 權(quán)限
DENY SELECT ON HR.Employees TO u_test

--再次執(zhí)行查詢HR.Employees表的語句,提示:拒絕了對對象 'Employees' (數(shù)據(jù)庫 'InsideTSQL2008',架構(gòu) 'HR')的 SELECT 權(quán)限。
select * from HR.Employees

--重新授權(quán)
GRANT SELECT ON HR.Employees TO u_test

--再次查詢,可以查詢出結(jié)果。
select * from HR.Employees


USE InsideTSQL2008
--從數(shù)據(jù)庫中刪除安全賬戶,failed
EXEC sp_revokedbaccess 'u_test'
--刪除角色 r_test,failed
EXEC sp_droprole 'r_test'
--刪除登錄 l_test,success
EXEC sp_droplogin 'l_test'

revoke 與 deny的區(qū)別

revoke:收回之前被授予的權(quán)限

deny:拒絕給當(dāng)前數(shù)據(jù)庫內(nèi)的安全帳戶授予權(quán)限并防止安全帳戶通過其組或角色成員資格繼承權(quán)限。比如UserA所在的角色組有inset權(quán)限,但是我們Deny UserA使其沒有insert權(quán)限,那么以后即使UserA再怎么到其他含有Insert的角色組中去,還是沒有insert權(quán)限,除非該用戶被顯示授權(quán)。

簡單來說,deny就是將來都不許給,revoke就是收回已經(jīng)給予的。

實例

GRANT INSERT ON TableA TO RoleA
GO
EXEC sp_addrolemember RoleA, 'UserA' -- 用戶UserA將有TableA的INSERT權(quán)限
GO

REVOKE INSERT ON TableA FROM RoleA -- 用戶UserA將沒有TableA的INSERT權(quán)限,收回權(quán)限
GO

GRANT INSERT ON TableA TORoleA --重新給RoleA以TableA的INSERT權(quán)限
GO 

DENY INSERT ON TableA TO UserA -- 雖然用戶UserA所在RoleA有TableA的INSERT權(quán)限,但UserA本身被DENY了,所以用戶UserA將沒有TableA的INSERT權(quán)限。

參考: http://database.51cto.com/art/201009/224075.htm

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

SQLServer精確授權(quán)方法

SQLServer精確授權(quán)方法:參考文獻(xiàn) 正文 要想成功訪問 SQL Server 數(shù)據(jù)庫中的數(shù)據(jù), 我們需要兩個方面的授權(quán): 獲得準(zhǔn)許連接 SQL Server 服務(wù)器的權(quán)利; 獲得訪問特定數(shù)據(jù)庫中數(shù)據(jù)的權(quán)利(select, update, delete, create table ...)。 假設(shè),我們準(zhǔn)備建立一個 dba
推薦度:
標(biāo)簽: 授權(quán) 步驟 方法
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 成人99国产精品一级毛片 | 2020精品极品国产色在线观看 | 黄色毛片a | 日韩欧美亚洲国产高清在线 | 视频精品一区二区 | 九九热国产 | 亚洲十欧美十日韩十国产 | 日韩美女一区二区三区 | 亚洲国产精品一区二区九九 | 欧美精品久久久亚洲 | 日韩一区二区三区在线播放 | 欧美第五页| 亚洲国产成人久久三区 | 视频在线观看国产 | 久久成人a毛片免费观看网站 | 国产一级特黄全黄毛片 | 亚洲精品在线免费观看 | 国产在线精品观看一区 | 91精品国产亚一区二区三区 | 国产日韩亚洲欧美 | 精品国产免费观看一区高清 | 国产亚洲精品va在线 | 在线免费黄色 | 曰韩免费视频 | 国产美女一级特黄毛片 | 亚洲va欧美va| 国产日韩欧美高清 | 国产成人免费视频精品一区二区 | 国产精品久久久精品三级 | xxx色xxx性 | 激情综合亚洲欧美日韩 | 一级毛片一级毛片 | xx日韩| 欧美日韩亚洲另类 | 免费一级a毛片在线播 | 欧美综合国产精品日韩一 | 国语视频 | 国产男女无遮挡猛进猛出 | 99精品热视频| 亚洲欧美综合网站 | 伊人情人综合成人久久网小说 |