我需要创建一个只能在SQL Server中执行存储过程的用户。我用这个查询SQL Server 2008用户登录失败
CREATE LOGIN SLogin WITH PASSWORD=N'#######', DEFAULT_DATABASE=MyDB, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
CREATE USER SUser FOR LOGIN [SLogin]
WITH DEFAULT_SCHEMA = MyDB
CREATE ROLE SUserRole AUTHORIZATION SUser
GRANT SELECT, INSERT, ALTER, EXECUTE TO SUserRole
的问题是,当我尝试使用带有的suser SSMS我得到一个错误消息“用户登录失败”错误代码18456.登录,但我可以登录使用s登录和密码。
当我尝试从C#执行存储过程,如果我用这个连接字符串Data Source=############\MSSQLSERVER,1433;Initial Catalog=MyDB;User ID=SLogin;Password=######;
我能够打开连接,但无法执行该存储过程。它表示用户无权访问此架构。
而在连接字符串中,如果我使用SUser作为用户ID,则无法打开连接。
请帮我看看我做错了什么。
不,它没有解决问题。通过登录,我可以建立连接但不能执行SP。用户我无法打开连接。 – Gulshan
将角色的权限显式添加到SP。另外,通过SSMS测试安全性,通过标准安全性登录。打开一个新的查询窗口并尝试执行SP。 –