在没有帐户的情况下在SQL Server上执行查询
问题描述:
有谁知道有没有办法让应用程序(连接到SQL Server)对数据库进行SQL查询,但限制用户使用SQL Server Management直接访问数据库工作室?在没有帐户的情况下在SQL Server上执行查询
对不起,我知道这听起来很混乱,但我这样问的原因是因为在工作中,我使用的应用程序允许我输入数据并将其上传到数据库。我假设预定义的INSERT
sql脚本被加载到应用程序中,但是当我登录到SQL Server Management Studio时,它根本不会让我使用INSERT
语句。我想知道为什么和如何这样的应用程序可以编程?
有关这方面的任何信息或内容将不胜感激。
感谢
答
既然你能够访问通过SSMS的数据库没有错误,该帐户可以明显地访问数据库。但是,权限将仅限于直接或通过角色成员身份授予该帐户的权限。
如果您使用的是同一个帐户,并且您的临时INSERT
失败并且访问被拒绝错误,则很可能应用程序正在使用存储过程来插入数据。当存储过程用于数据访问时,调用帐户需要对存储过程执行权限,但不需要对基础表执行权限。只要所有权链不间断,就不会评估间接引用对象的权限。
有关所有权链的更完整说明,请参阅https://technet.microsoft.com/en-us/library/ms188676%28v=sql.105%29.aspx。
如果没有帐户,则无法访问数据库。如果您不希望最终用户在数据库上拥有直接登录权限,则可以为您的应用程序创建专用帐户。该应用在用户的BEHALF上使用该帐户。 –
可能您的应用程序使用特定的Sql Server用户,当您使用Sql Server Management Studio登录时,您正在使用具有不同权限的其他用户。 – Steve