ASP.NET MVC以有限的访问权限连接到DSN

时间:2018-10-31 13:40:21

标签: sql-server asp.net-mvc iis odbc windows-server

我有一个数据库,但对其具有非常有限的访问权限。我需要从数据库的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中有问题吗?

2 个答案:

答案 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