这似乎是一个相当普遍的问题但是看看帮助&其他相关主题的解决方案对我没有帮助。
我在这里使用PHP代码块(http://pastebin.com/xSJYyC3y)来尝试连接和查询SQL Server数据库。连接似乎有效,但在进行查询时,我收到以下错误消息:
[Microsoft][SQL Server Native Client 11.0][SQL Server]The server principal "my_username" is not able to access the database "database_name" under the current security context.
我通过PHP连接到服务器时只会出现此错误,如果我通过MS SQL Management Studio手动完成,那么一切正常。
我使用的是Windows 7 x64,SQL Server 2008 SP1 x64和PHP 5.4。
感谢您查看我的问题!
答案 0 :(得分:1)
如果您可以通过SSMS运行查询,但通过PHP遇到安全问题,则很可能会遇到错误模拟的问题。
通常,您将遇到两个不同的安全问题:
请注意,如果您的查询涉及多个数据库,或者特别是如果它包含明确触及文件系统的内容(可能在共享文件夹中),则需要检查所有服务器和正在播放的所有文件夹的权限。
此外,如果您正在执行存储过程,请确保您没有EXECUTE AS OWNER
的问题。可以看到here
如果这样做没有帮助,你仍然可以查看Windows机器上数据库文件的安全性,并尝试 - 暂时 - 放宽文件夹的安全性,看看是否有任何改变。