我在两个系统上安装了 windows xp。在一台机器上我安装了 sql server 2005 express。 现在从与第一台机器位于 LAN 上的另一台机器,我将访问 sql server 以通过 .net 应用程序插入数据。我的服务器实例是 A-9。 我创建了别名:A-9-1。我的连接字符串是:
conn.ConnectionString= "数据源=A-9-1 ; Trusted_Connection =true "; -- 这是使用windows身份验证。我的windows用户名是Admin,没有任何密码。
现在,当我从客户端机器连接到机器 1 上的 sql server 时,出现错误消息:A-9\Guest 登录失败。
我不能从客户端计算机以管理员身份连接到 sql,即使用 Windows 身份验证。意思是,sql server 会有两个管理员。一个是服务器机器上的 A-9\Admin,另一个是客户端机器上的 A-9-1\Admin。 这可能吗?
其实我想把所有权限给客户端机器用户,对于sql数据库,他可以创建登录名、用户、数据库、表、插入数据、授予权限并做所有事情。
还有,
最佳答案
1) 您可以根据需要设置任意数量的登录名,这些登录名在 SQL Server 中具有任意数量的权限。这包括数据库的所有者权利。
2) 如果您想授予对任何 客户端计算机的访问权限,请在数据库的安全性下添加 A-9\Guest 作为登录名。然后给他们适当的权利。
请注意,这将为连接到服务器计算机的任何人授予您为 A-9\Guest 指定的权限。
3) 不会有第二个名为 A-9-1\Admin 的管理员。由于听起来您没有在网络中的域上使用 Active Directory,因此服务器无法知道客户端计算机的用户/登录名。这就是您看到错误的原因:A-9\Guest 登录失败。此外,听起来 A-9-1 是连接的名称,而不是机器/域。
在您的场景中,您最好只使用 SQL 身份验证并为客户端计算机设置用户名和密码以用于访问。
编辑
一些 Active Directory 链接:
警告:虽然设置 AD 并不“困难”,但它是一个需要规划的复杂过程。 *
Google Search for setting up active directory
我仍然认为您最好使用 SQL 身份验证。 :)
关于.net - SQL Server 的两个管理员帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027807/