1在數(shù)據(jù)庫實例端開啟sql server身份驗證模式
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、做網(wǎng)站與策劃設(shè)計,祁連網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:祁連等地區(qū)。祁連做網(wǎng)站價格咨詢:13518219792
2重啟數(shù)據(jù)庫,在重啟數(shù)據(jù)庫服務(wù)的過程中可能會報錯,會提示在本地不支持重啟服務(wù)之類的信息,這里可以這樣解決:
打開“服務(wù)”組件,并且點開sqlserver服務(wù)的屬性選項:
在屬性選項卡中點開登錄的選項卡,然后重新輸一次服務(wù)器的密碼,點擊確定,再重啟數(shù)據(jù)庫服務(wù)就可以了
3新建帳號并且授權(quán)
打開sqlserver management studio管理工具,在“安全性”選項卡里面的“登錄名”右鍵單擊選擇新建登錄名:
在常規(guī)選項卡里面,輸入登錄名,選擇sql server身份驗證,輸入密碼,反選強制密碼策略,這樣就不用經(jīng)常去更改數(shù)據(jù)庫賬戶的密碼了,選擇默認數(shù)據(jù)庫,這個大家根據(jù)自己想授權(quán)遠程登錄到的數(shù)據(jù)庫來選擇
在服務(wù)器角色的選項卡里面,選擇public和sysadmin兩個服務(wù)器角色
在用戶映射的選項卡里面,勾選你想要遠程連接的數(shù)據(jù)庫,下面數(shù)據(jù)庫角色成員身份那里勾選,我這里全部都選了
點擊確定
4如果我們建立錯了賬戶想刪除重建怎么辦呢,這里注意有兩個地方的賬戶需要刪除,一個是在安全性——登錄名選項卡那里,一個是在你授權(quán)的數(shù)據(jù)庫——安全性——用戶那里
grant 權(quán)限 on 數(shù)據(jù)庫對象 to 用戶
例如 grant select on employee to user
給user這個用戶對表employee的查詢權(quán)限
grant all privileges on testdb to user
給user這個用戶對數(shù)據(jù)庫testdb 的所有權(quán)限
訪問權(quán)限只能設(shè)置到字段的粒度,不能設(shè)置到行。你這種情況,只能把電冰箱的所有行(兩張表里面的)導出來作為一個視圖,把這個視圖的權(quán)限給user。產(chǎn)品表和銷售表屏蔽。
1. 首先在 SQL Server 服務(wù)器級別,創(chuàng)建登陸帳戶(create login)
create login dba with password='sqlstudy', default_database=master 登陸帳戶名為:“dba”,登陸密碼:“sqlstudy”,默認連接到的數(shù)據(jù)庫:“mydb”。這時候,dba 帳戶就可以連接到 SQL Server 服務(wù)器上了。但是此時還不能訪問數(shù)據(jù)庫中的對象(嚴格的說,此時 dba 帳戶默認是 guest 數(shù)據(jù)庫用戶身份,可以訪問 guest 能夠訪問的數(shù)據(jù)庫對象)。
要使 dba 帳戶能夠在 mydb 數(shù)據(jù)庫中訪問自己需要的對象,需要在數(shù)據(jù)庫 mydb 中建立一個“數(shù)據(jù)庫用戶”,賦予這個“數(shù)據(jù)庫用戶” 某些訪問權(quán)限,并且把登陸帳戶“dba” 和這個“數(shù)據(jù)庫用戶” 映射起來。習慣上,“數(shù)據(jù)庫用戶” 的名字和 “登陸帳戶”的名字相同,即:“dba”。創(chuàng)建“數(shù)據(jù)庫用戶”和建立映射關(guān)系只需要一步即可完成:
2. 創(chuàng)建數(shù)據(jù)庫用戶(create user):
create user dba for login dba with default_schema=dbo
并指定數(shù)據(jù)庫用戶“dba” 的默認 schema 是“dbo”。這意味著用戶“dba” 在執(zhí)行“select * from t”,實際上執(zhí)行的是 “select * from dbo.t”。
3. 通過加入數(shù)據(jù)庫角色,賦予數(shù)據(jù)庫用戶“dba”權(quán)限:
exec sp_addrolemember 'db_owner', 'dba'
此時,dba 就可以全權(quán)管理數(shù)據(jù)庫 mydb 中的對象了。
如果想讓 SQL Server 登陸帳戶“dba”訪問多個數(shù)據(jù)庫,比如 mydb2??梢宰?sa 執(zhí)行下面的語句:
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)限了!
4. 禁用、啟用登陸帳戶:
alter login dba disable
alter login dba enable
5. 登陸帳戶改名:
alter login dba with name=dba_tom
提示:在 SQL Server 2005 中也可以給 sa 改名。 《SQL Server 2005 安全性增強:給超級用戶 sa 改名》
6. 登陸帳戶改密碼:
alter login dba with password='sqlstudy.com'
7. 數(shù)據(jù)庫用戶改名:
alter user dba with name=dba_tom
8. 更改數(shù)據(jù)庫用戶 defult_schema:
alter user dba with default_schema=sales
9. 刪除數(shù)據(jù)庫用戶:
drop user dba
10. 刪除 SQL Server登陸帳戶:
drop login dba
1、為角色賦予jobs表的所有權(quán)限
GRANT ALL ON jobs TO newrole
2、為角色賦予sales表的查、改權(quán)限
GRANT SELECT,UPDATE ON sales TO newrole
臨時表可以被任何用戶在任何數(shù)據(jù)庫下創(chuàng)建,而不需要授予任何權(quán)限。
本地臨時表只能被創(chuàng)建它的會話訪問。全局臨時表可以被所有會話訪問和修改,而不需要授權(quán)。
1
-- SQLServer:
一、操作步驟
首先進入數(shù)據(jù)庫級別的【安全性】-【登錄名】-【新建登錄名】
(圖1:新建登錄名)
2. 在【常規(guī)】選項卡中,如下圖所示,創(chuàng)建登陸名,并設(shè)置默認的數(shù)據(jù)庫。
(圖2:設(shè)置選項)
3. 在【用戶映射】選項卡中,如下圖所示,勾選需要設(shè)置的數(shù)據(jù)庫,并設(shè)置【架構(gòu)】,點擊【確認】按鈕,完成創(chuàng)建用戶的操作
(圖3:選擇對應(yīng)數(shù)據(jù)庫)
4. 現(xiàn)在我們就可以對TestLog數(shù)據(jù)庫中的User表進行權(quán)限的設(shè)置了,【表】-【 屬性】
(圖4:選擇對應(yīng)表)
5. 在【權(quán)限】選項卡中,如下圖所示,依此點擊【添加】-【瀏覽】-【選擇對象】
(圖5:設(shè)置訪問表的用戶)
6. 在上面點擊【確認】后,我們就可以下面的列表中找到對應(yīng)的權(quán)限,如果你還想細化到列的權(quán)限的話,右下角還有一個【列權(quán)限】的按鈕可以進行設(shè)置,點擊【確認】按鈕就完成了這些權(quán)限的設(shè)置了
(圖6:權(quán)限列表)
7. 現(xiàn)在就使用TestUser用戶登陸數(shù)據(jù)庫了,登陸后如下圖所示,現(xiàn)在只能看到一個表了
(圖7:效果)
二、注意事項
在上面的第3步驟中需要注意:如果這里沒有選擇對應(yīng)的數(shù)據(jù)庫的話,之后去TestLog數(shù)據(jù)庫中是找不到TestUser。
(圖8:找不到TestUser用戶)
2. 在上面的第3步驟,設(shè)置完TestLog數(shù)據(jù)后,需要點擊【確認】按鈕,完成創(chuàng)建用戶操作,如果這個時候去設(shè)置【安全對象】,是無法在【添加】-【特定對象】-【對象類型】-【登陸名】-【瀏覽】中找到剛剛新建的TestUser用戶的。
3. 其實在數(shù)據(jù)庫級別的【安全性】創(chuàng)建的用戶是屬于全局的,當設(shè)置了某個數(shù)據(jù)庫,比如TestLog之后,這個用戶就會出現(xiàn)在這個數(shù)據(jù)庫的【安全性】列表中。 如果刪除TestLog這個用戶,會出現(xiàn)下面的提示。刪除了后,這個用戶就無法登陸了。需要去對應(yīng)的數(shù)據(jù)庫中刪除用戶,如果沒有刪除又創(chuàng)建,是會報錯的。
(圖9:刪除TestUser用戶)
4. 在第6步的【顯式權(quán)限】列表中,如果選擇了【Control】這個選項,那么在【Select】中設(shè)置查詢【列權(quán)限】就沒有意義了,查詢就不會受限制了。如果設(shè)置【列權(quán)限】,在正常情況下會顯示下圖的報錯信息:
(圖10:效果)
5. 在TestLog數(shù)據(jù)庫的【安全性】-【TestUser】-【屬性】-【安全對象】-【添加】-【對象類型】這里有更多關(guān)于數(shù)據(jù)庫級別的一些對象類型可以設(shè)置。
(圖11:其它對象類型)