尝试打开SQL连接时请求权限错误

时间:2017-02-23 18:12:27

标签: c# sql-server-2012 sql-server-data-tools

我有一个针对SQL Server 2012的Visual Studio 2012 SQL Server数据库项目,该项目添加了一个存储过程。我可以调试和发布项目。 SP工作,因为我可以传入一个值,在代码中修改它,然后返回修改后的值。我遇到的问题是当我尝试在单独的SQL实例上打开一个连接(SqlConnection.Open)到另一个数据库时,我收到以下错误。

"请求类型&System; System.Data.SqlClient.SqlClientPermission,System.Data,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'失败"

抛出此错误的相同代码在控制台应用程序中正常工作。

我是SQL Server数据库项目的新手,非常感谢您的帮助。我已经找到了解决方案,但我能够找到任何相关的东西。顺便说一下,这是我第一次发帖

抛出错误:

public partial class StoredProcedures
{

   [Microsoft.SqlServer.Server.SqlProcedure]
   public static SqlInt32 SqlStoredProcedure3 (SqlInt32 inInt, out SqlInt32 outInt)
   {
       SqlConnectionStringBuilder connBuilder = new SqlConnectionStringBuilder();
       connBuilder.DataSource = "mySqlInstance";
       connBuilder.InitialCatalog = "myDbName";
       connBuilder.IntegratedSecurity = false;
       connBuilder.UserID = "myUserName";
       connBuilder.Password = "myPW";
       SqlConnection sqlCn = new SqlConnection(connBuilder.ConnectionString);
       sqlCn.Open();
   }
}

这有效:

class Program
{
    static void Main(string[] args)
    {
        SqlConnectionStringBuilder connBuilder = new SqlConnectionStringBuilder();
        connBuilder.DataSource = "mySqlInstance";
        connBuilder.InitialCatalog = "myDbName";
        connBuilder.IntegratedSecurity = false;
        connBuilder.UserID = "myUserName";
        connBuilder.Password = "myPW";
        SqlConnection sqlCn = new SqlConnection(connBuilder.ConnectionString);
        sqlCn.Open();
    }
}

1 个答案:

答案 0 :(得分:0)

Visual Studio 2012中的SSDT版本非常老 - 下载最新的SSDT,如果你没有visual studio 2015那么它将下载比2012版更好的shell。

当前版本的SSDT适用于SQL 2012(2005年以上版本),因此没有理由坚持使用旧版本。