セキュリティポリシーによって参照されているテーブル値関数があります。 私は機能をALTER
したいが、私はできません:SQL Sever 2016テーブル値関数の変更 - セキュリティポリシーの変更
Msg 3729, Level 16, State 3, Procedure accessPredicate, Line 1
Cannot ALTER 'rls.accessPredicate' because it is being referenced by object 'EventSecurityPolicy'
うーんしかし、ここでセキュリティポリシーはGUIで発見されましたか?私はスキーマ、テーブル、および関数をチェックしました。私は
select *
from sys.security_policies
は、たぶん私はちょうどオフ
Alter security policy rls.EventSecurityPolicy
with (state = OFF);
それを回すことができ
は、[OK]をよく私は、T-SQLでそれを行う常にすることができ、それは政策の下になることを前提としています同じエラーはありません。
Msg 3729, Level 16, State 3, Procedure accessPredicate, Line 1
Cannot ALTER 'rls.accessPredicate' because it is being referenced by object 'EventSecurityPolicy'
OK、私はどこへ行く見当がつかない
select * from sys.assemblies
[OK]を..私はアセンブリを変更しますのは、
delete from sys.objects
where schema_id = schema_id('rls') and object_id='1253579504'
Msg 259, Level 16, State 1, Line 2
Ad hoc updates to system catalogs are not allowed.
How do you get past this sort of error: "Ad hoc updates to system catalogs are not allowed."?
OKそれを削除してみましょうここから....
簡単な方法が必要です。私はちょうど関数を変更したい!
はこの 'ALTERセキュリティポリシーyourpolicy DROPフィルタ/ブロック述語を試しますONテーブル ' – TheGameiswar
パーフェクトありがとう...メモとしてdは、ブロック述部のAFTER UPDATEを含むようにします。そうでない場合は、述部が存在しないことを示します。 答えとして追加して、私は正しいとマークします –
あなたはあなたが持っていたものと何を試していたのか、そして何をしたのかを答えとして投稿することができます。 – TheGameiswar