2

.NET 2.0でユーザー定義関数を作成し、それをローカルSQLServerインスタンスに正常に展開できます。ただし、関数に対する特定のユーザーEXECUTE権限を付与する必要があります。これをCLRメソッド自体で実行して、UDFを再デプロイするたびに手動でアクセス許可を再付与する必要がないようにします。Visual StudioからCLR関数を展開すると、データベースに次の関数が生成されます。

ALTER FUNCTION [dbo].[MyFunction](@input [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [LibName].[UserDefinedFunctions].[MyFunction]
GO

これに取り組む方法はありますか?

GRANT EXECUTE ON [dbo].[MyFunction] TO [wwwUser] AS [dbo]

ありがとう。

4

1 に答える 1

1

はい-MSDNを参照てください-プロジェクトのルートにPostDeployScript.sqlというスクリプトを作成するだけで、ビルド出力に自動的に追加されます。

VS2012では、[追加...]ダイアログに「Script(PostDeployment)」などのタイプのスクリプトを追加するオプションがありますが、通常の「1」がファイル名に追加されるため、機能しません。最初の方法が機能するため、MSDNにも記載されていますが、これ以上調べる必要はありません。

于 2013-01-03T17:11:53.923 に答える