建立只能看到自己有許可權庫的登入名和使用者

2021-08-03 23:04:47 字數 1244 閱讀 5630

--注:

--1. 將所有 mydb 替換成需要執行的db名稱

--2. 使用者名稱 test_login, test_login 也需要替換

use [master]

go--刪除所有庫中使用者名為 test_login 的使用者

exec sp_msforeachdb 'if exists(select 1 from sys.database_principals where name=''test_login'' and type_desc=''sql_user'')

drop user test_login

'if exists(select * from sys.syslogins as s where name='test_login')

begin

drop login [test_login]

end/*

如果執行出錯,

訊息 15174,級別 16,狀態 1,第 7 行

登入名 'test_login' 擁有乙個或多個資料庫。在刪除該登入名之前,請更改相應資料庫的所有者。

則執行下面的指令碼修正

use mydb

goexec sp_changedbowner 'sa',true

*/go

create login [test_login] with password=n'test_login', check_expiration=off, check_policy=off

gouse [mydb]

goif exists(select 1 from sys.database_principals where name='test_login' and type_desc='sql_user')

drop user test_login

gouse [master]

--任何庫都無法看到

deny view any database to test_login;

go--可以看到mydb

alter authorization on database::mydb to test_login

go--建立使用者

create user [test_login] for login [test_login]

go--給予 db_owner 角色

exec sp_addrolemember n'db_owner', n'test_login'

go

如何讓SQL使用者只能看到自己擁有許可權的庫

以sql server 2012 為例 圖是部分資料庫的截圖,我們執行 儲存 deny view anydatabase topublic 然後給best庫的best使用者執行 alter authorization ondatabase mineto mine 資源管理器中best使用者登陸後就只...

如何讓SQL使用者只能看到自己擁有許可權的庫

以sql server 2012 為例 圖是部分資料庫的截圖,我們執行 儲存 deny view anydatabase topublic 然後給best庫的best使用者執行 alter authorization ondatabase mineto mine 資源管理器中best使用者登陸後就只...

從命名能看到的

there are only two hard things in computer science cache invalidation and naming things phil karlton 今天在arshsummit 2014 上的ppt的看到的一句話,聊聊命名。命名能反應工程師對需求的...