我有一个数据库,但对其具有非常有限的访问权限。我需要从数据库的VIEW获取一些数据。我有一个通用的Windows帐户,只有在Shift +单击Sql Server Studio并以其他用户身份打开并使用默认的Windows身份验证(No Sql Server身份验证有效)后才能登录。我创建了一些DNS,但是我只能使用默认的Windows NT身份验证和SQL Server登录。问题是,当我使用Windows NT时出现错误:
[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]用户登录失败 “ DOMAIN \ SERVERNAME”。错误[28000]
我的代码:
try
{
OdbcConnection cn;
OdbcCommand cmd;
string MyString;
MyString = "Select * from users";
cn = new OdbcConnection("dsn=DB77;UID=****;PWD=****;");
cmd = new OdbcCommand(MyString, cn);
cn.Open();
cn.Close();
}
catch(Exception e)
{
return e.ToString();
}
我想使用Windows身份验证从数据库获取数据。在代码,ODBC数据源管理,IIS中有问题吗?
答案 0 :(得分:0)
我个人将NHibernate与MVC结合使用。最初,我之所以选择它,是因为我们的数据库不支持EF,但是享受它的乐趣足以使我们即使迁移到SQL Server也会保留NHibernate。
学习曲线有点奇怪。成为专家肯定很艰难,但是有趣的是,当您适应某些层次时,让它为您处理越来越多的工作是很自然的。
因此,对于您而言,NHibernate可能支持您的数据库,可以用作简单的数据访问层(仅返回DTO),提供数据库不可知的接口,并且可以在需要时支持SQL Server。如果您最终想从NHibernate中获得更多收益,那么当机会来临时,就在那里。
答案 1 :(得分:0)
nHibernate与Windows身份验证没有任何关系。 SQL Server将使用您的进程身份进行身份验证 如果配置为使用Windows身份验证。这意味着,如果您的应用程序是网络应用程序,则需要确保 应用程序在Windows身份下运行,该身份可以由SQL Server进行身份验证。 不幸的是,不可能通过数据库连接字符串提供Windows凭据。 使用Windows身份验证时的连接字符串示例: 数据源= myServerAddress;初始目录= myDataBase;集成安全性= SSPI; 假冒: http://msdn.microsoft.com/en-us/library/xh507fc5.aspx