2013-04-04 57 views
0

我有一個腳本,它爲給定的{databaseName}生成一個數據庫,然後爲該數據庫的給定{loginName}創建一個登錄名。在存儲過程中SQL Server「拒絕查看任何數據庫」

然後我想限制這個用戶只能查看這個數據庫,沒有其他人。

我有這個通過使用工作:

USE [{DatabaseName}] 
GO 
ALTER AUTHORIZATION ON DATABASE::[{DatabaseName}] to [{LoginName}] 
GO 
USE [master] 
GO 
DENY VIEW ANY DATABASE TO [{LoginName}] 
GO 

我現在已經把這個變成一個存儲過程,但我不能改變到[主]數據庫中執行的最後一行:

DENY VIEW ANY DATABASE TO [{LoginName}] 

有沒有辦法限制用戶在存儲過程中查看其他數據庫?

存儲過程當前位於另一個數據庫上,但我可以將其移動。

回答

0

你可以做這樣的事情來改變給定SQL命令的數據庫環境:

master.dbo.sp_executesql N'print db_name()' 

雖然我懷疑有可能是一個更好的方式做你想要做的

什麼
相關問題