在 SQL Server 上创建了新数据库,Web 应用无法看到该数据库,因为未设置权限

Created a new database on SQL Server, can't be seen by web apps because permissions aren't set

提问人:Andrew G. Johnson 提问时间:1/22/2010 最后编辑:Andrew G. Johnson 更新时间:1/25/2010 访问量:127

问:

因此,我在 SQL Server 机器上创建了一个新数据库,然后添加了一个 ODBC 条目,以便我的 ASP 代码知道它是什么。现在我收到此错误:

Cannot open database "DB_NAME" requested by the login. The login failed.

我通过右键单击 Management Studio 中的数据库来检查权限,并检查权限和低,看到它是空的。

我只是想复制盒子上其他二十多个数据库中的任何一个的权限。有没有快速的方法可以做到这一点?无论哪种方式,我只需要打开我的 ASP 代码和我的 SQL Server 数据库之间的通信线路

这是我在 ASP 中的连接代码:

Set sqlConnection = Server.CreateObject("ADODB.CONNECTION")
sqlConnection.Open "DB_NAME"
sql-server asp-经典

评论


答:

-1赞 Dave7896 1/22/2010 #1

尝试将用户 ID 和密码添加到连接字符串中。

评论

0赞 Andrew G. Johnson 1/22/2010
我没有使用连接字符串,会将我的连接代码添加到问题中
0赞 AnthonyWJones 1/22/2010 #2

是否有某些理由避免使用正确的连接字符串:-

sqlConnection.Open "Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=DB_NAME;User Id=myUsername;Password=myPassword;"
0赞 Piotr Rodak 1/25/2010 #3

最重要的是,在创建新数据库时,必须将登录名(SQL 登录名或应用程序池中的 Windows 登录名)映射到此数据库。可以使用 Management Studio 执行此操作 - 打开登录属性并将其映射到新数据库。打开“对象资源管理器”,然后单击“安全性”、“登录名”,并右键单击应用程序使用的登录名。选择“属性”。单击“用户映射”,然后在您将看到的网格中为您的数据库添加适当的条目。 另一种选择是运行语句以在数据库中创建用户:

Use DB_NAME
go
create user [web_user] from login [web_login]
go

另一个问题是查看必须为数据库中的用户分配哪些权限。您必须检查其中一个现有数据库中的用户权限。再次在对象资源管理器中,单击现有数据库,然后单击“安全性”、“用户”,然后右键单击要检查的用户的“属性”。观察“常规”选项卡中对话框中显示的信息,并检查是否为用户分配了任何安全对象。您必须将这些设置复制到新数据库中的用户。

它)

皮奥特