--注:
--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的看到的一句話,聊聊命名。命名能反應工程師對需求的...