をのdbownerシステム管理者としないように、ユーザー定義のCLR関数の実行を制限するが、ここでは行く:は、私はおそらく何かを明らかに不足しているか、間違った方法でこのことについてつもり
私はスカラーCLR機能を書きましたSQL Server 2005には1つのパラメータ(int
)があり、varchar(2000)
を返します。私は、sysadminロールに権限を与え、db_ownerを含む他のロールがそれを実行するのを制限する方法を考え出すのに困っています。
他のUDFと同じように、CLR関数の権限の付与と取り消しが同じであると推測しています。これは、アプリケーションのSecurityUserテーブルに格納されているパスワードを復号化するため、機密性の高い機能です。私は誰もがsysadminロールのメンバーを除いてそれを実行できるようにしたくありません。データベースにおいて
は、私が最初にデータベースからシステム管理者に付与しようとした:
grant execute ON dbo.fCrossTabDx1 TO sysadmin
もちろん、エラーを受信した:
Msg 15151, Level 16, State 1, Line 1
Cannot find the user 'sysadmin', because it does not exist or you do not have permission.
Iは次にである、db_securityadmin
に権限を付与しようとしましたデータベースの役割とエラー:
Msg 4617, Level 16, State 1, Line 1
Cannot grant, deny or revoke permissions to or from special roles.
したがって、woul可能であれば、正しい方向に向かう誰かを感謝します。
- は私が機能を実行するからdb_owner権限を持つユーザーを制限し、
- することができます私は、機能上の唯一のsysadminロールの実行権限を許可することはできますか?
ありがとうございます。
脇に:原則として、パスワードを解読できれば間違ったことをしています。通常、一方向の暗号化またはハッシュ処理は、パスワードの回復を防ぐために使用されます。 – HABO