2009-04-14 10 views

答えて

11

新しいユーザーを作成し、特定のビューに対してのみ権限を選択するスクリプトです。

USE [master] 
GO 
CREATE LOGIN [LimitedUser] WITH PASSWORD=N'testPass', 
      DEFAULT_DATABASE=[master], 
      CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
GO 
USE [TestDB] 
GO 
CREATE USER [LimitedUser] FOR LOGIN [LimitedUser] 
GO 
use [TestDB] 
GO 
GRANT SELECT ON [dbo].[myView] TO [LimitedUser] 
GO 

編集

代わりに特定のユーザーのためにこれを行うのあなたの代わりに役割を使用して検討する必要があります。

USE [TestDB] 
GO 
CREATE ROLE [LimitedRole] 
GO 
GRANT SELECT ON [dbo].[TestView] TO [LimitedRole] 
GO 
EXEC sp_addrolemember N'LimitedRole', N'LimitedUser' 
GO 

この方法では、Windows Authenitcationモードで例えば複数のユーザーを持っている場合は、すべてがこの役割へのアクセスを許可することができ、多くのユーザーを持っているかもしれません。このように、ビューを追加/削除すると、すべてのユーザーに触れる必要はありません。

+0

ジョシュ:グッド答え。無邪気な傍観者からの好奇心の強い質問と同じように、ログインの作成GUIインターフェイスを使って同じルートに終わる方法がありますか? – TheTXI

+0

はい私はSql Management Studioでこれらのスクリプトを生成し、DBレベルで最初にログインしてからユーザーを作成しなければなりませんでした。 – JoshBerke

2

これを行うには、パブリックロールに明示的なアクセス許可を与えないでください。すべてのユーザーはその役割の取消不能なメンバーです。そのため、DBのユーザーがパブリックに与えるすべての権利を持つことを防ぐ方法はありません。それはさておき

、あなただけの適切なDBにユーザーを追加し、それらだけに興味があるオブジェクトに対する権限を与える

関連する問題