我有一个关于 ms sql 权限的问题
我为列 UPDATE 设置了 DENY 权限
DENY UPDATE ON [MyTable] (MyColumn) TO [PrincipalName] ;
它工作正常(防止在我直接更新 MyTable 的 MyColumn 时更新 MyColumn),但它仍然允许用户通过存储过程更新此列。
这个问题有什么解决办法吗?
我有一个关于 ms sql 权限的问题
我为列 UPDATE 设置了 DENY 权限
DENY UPDATE ON [MyTable] (MyColumn) TO [PrincipalName] ;
它工作正常(防止在我直接更新 MyTable 的 MyColumn 时更新 MyColumn),但它仍然允许用户通过存储过程更新此列。
这个问题有什么解决办法吗?
Colin Mackay is right. Stored procedure encapsulates business logic and permissions.
You can use something like
IF user_name()='PrincipalName' raiserror(N'Update denied',15,0)
to check user in the stored procedure. Or You can create an update trigger for then table