SQL Sever 2016更改表值函数 - 更改安全策略
问题描述:
我有一个表值函数正在被安全策略引用。 我想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中发现了什么?我检查了模式,表格和函数。我会认为,这将是在政策
玉以及我总是可以用T-SQL做
select *
from sys.security_policies
也许我就可以把它关掉
Alter security policy rls.EventSecurityPolicy
with (state = OFF);
没有同样的错误:
Msg 3729, Level 16, State 3, Procedure accessPredicate, Line 1
Cannot ALTER 'rls.accessPredicate' because it is being referenced by object 'EventSecurityPolicy'
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,我会改变装配..
select * from sys.assemblies
好吧,我不知道哪里去了从这里......
必须有一个更简单的方法!我只是想改变一个功能!
试试这个'ALTER安全政策yourpolicy DROP过滤器/块谓词在桌子上# – TheGameiswar
完美的谢谢你......作为笔记我哈d包含块谓词的AFTER UPDATE ...否则它说谓词不存在。 添加为答案&我将标记为正确 –
您可以将该答案作为答案发布,包含您的所作所为,以及您正在尝试做什么和做了什么,它可能会在未来帮助其他人 – TheGameiswar