【发布时间】:2011-09-30 11:48:53
【问题描述】:
我已经安排了一个包含三个模式的数据库。在数据库用户下,我已将三个模式勾选为我正在连接的用户的自有模式(当时认为这是个好主意)。
但是,这似乎不允许我将有问题的 db 用户添加到存储过程的权限中,这些存储过程也在相同的三个模式下(不是 dbo)。我选择 db 用户,选择执行,然后单击确定。回去,权限就没有了。
我很确定我把数据库搞砸了,因为 Database User (General) 下的每个勾号都是灰色的。
我在开发 ASP.Net 站点时没有遇到任何权限问题,直到我尝试将客户数据传递到一个也加密客户密码的 INSERT 存储过程。调用 SP 时出现以下错误:
找不到对称密钥“myKey”, 因为它不存在或者你存在 没有权限。
我可以在SSMS中完美运行SP,密码加密很好。
我在哪里缺少提供权限?灰色的模式是问题吗?还是这是一个 ASP.Net c# 问题?
【问题讨论】:
-
当您通过 SSMS 本地连接时,您的应用程序连接字符串是否使用与登录相同的用户登录?
-
好点。我正在使用 Windows 身份验证。
-
您的声明在这里,很可能您收到的错误消息是完全准确的。应用程序用户无权访问对称密钥“myKey”。希望这里的一位 MSSQS 人员能够在 sql 命令上为您指明正确的方向以添加这些权限。
-
刚刚尝试使用相同的用户登录,但失败并显示相同的错误消息。所以看起来我搞砸了我在数据库中的权限。
-
我真正不明白的是,我可以向有问题的 SP 添加公共或访客权限,但不能添加用户登录 - 只是不会留在权限列表中。
标签: c# asp.net sql-server-2008 database-permissions