在没有帐户的情况下在SQL Server上执行查询

时间:2015-10-26 21:09:40

标签: c# sql-server database

有没有人知道应用程序(连接到SQL Server)是否有办法对数据库进行SQL查询,但是限制用户使用SQL Server Management Studio直接访问数据库?

很抱歉,我知道这听起来很混乱,但我之所以这样问是因为在工作中,我使用的应用程序允许我输入数据并将其上传到数据库。我假设已将预定义的INSERT sql脚本加载到应用程序中,但是当我登录到SQL Server Management Studio时,它根本不允许我使用INSERT语句。我想知道为什么以及如何编写这样的应用程序?

非常感谢您对此的任何信息或见解。

由于

1 个答案:

答案 0 :(得分:1)

由于您可以通过SSMS访问数据库而不会出现错误,因此该帐户显然可以访问数据库。但是,权限将仅限于直接或通过角色成员身份授予帐户的权限。

如果您使用的是同一个帐户,并且您的ad-hoc INSERT因访问被拒绝错误而导致应用程序正在使用存储过程来插入数据。当存储过程用于数据访问时,调用帐户需要对存储过程执行权限,但不需要对基础表执行权限。只要所有权链未中断,就不会评估间接引用对象的权限。

有关所有权链的更完整说明,请参阅https://technet.microsoft.com/en-us/library/ms188676%28v=sql.105%29.aspx