Asa*_*f R 10 t-sql stored-procedures sql-server-2008
使用SQL Server 2008,有没有办法只允许通过存储过程插入表,如果是这样,怎么办?
编辑:
最好的方法可能是马丁史密斯建议使用INSTEAD OF INSERT触发器.这个问题的直接答案是marc_s'与GRANT和DENY合作,但它不会限制某些用户帐户.
只是不要授予任何数据库用户(以及您的"公共"角色)对表的INSERT权限.
授予这些用户执行INSERT存储过程的权限 - 这样,他们可以调用存储过程,但是他们不能直接将任何数据插入到基础表中.
DENY INSERT ON dbo.YourTable TO PUBLIC
GRANT EXECUTE ON dbo.InsertDataProc TO PUBLIC
Run Code Online (Sandbox Code Playgroud)