【问题标题】:How can I connect to an Oracle database as SYS using an ADO connection string?如何使用 ADO 连接字符串以 SYS 身份连接到 Oracle 数据库?
【发布时间】:2010-09-15 19:32:49
【问题描述】:

我正在尝试这个:

Provider=MSDASQL.1;Persist Security Info=False;User ID=sys;Password=pwd;Initial Catalog=DATABASE;Data Source=OdbcDataSource;DBA Privilege=SYSDBA

但我得到了错误:

[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed

我正在使用 Delphi,但欢迎使用任何语言回答。

澄清: 我能够以普通用户的身份连接。我在尝试连接 AS SYSDBA 时遇到了麻烦。

【问题讨论】:

    标签: oracle ado connection-string sysdba


    【解决方案1】:

    您无法使用标准 System.Data.OracleClient 以 SYSDBA 身份进行连接,如本文所述:http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2245591&SiteID=1

    您可以使用 ODP .NET(适用于 .NET 的 Oracle 数据提供程序)或其他第三方库来执行此操作。如果您打算在 .NET 上构建真正的 Oracle 应用程序,我建议您至少看看 ODP.NET

    【讨论】:

    • 我们从 ODP.Net 迁移到了优秀的第三方库——DevArt(前身为 CoreLAB)的 OraDirect.Net。他们让您以 SYSDBA 或 SYSOPER (devart.com/oranet/docs/…) 身份连接:o)
    【解决方案2】:

    我不确定您以 SYS 身份连接是什么意思,但这里有一个指向 connection strings 的甜蜜存储库的链接。我希望你能在那里找到你的答案。

    【讨论】:

    • as sys = 用户名为“sys”。从 sql plus 开始,它将是 SYS AS SYSDBA。
    【解决方案3】:

    Oracle 连接字符串示例

    您必须在 TNSNames 文件中定义您的 Oracle SID。哪个是数据源。

    Data Source=oracl;User Id=userID;Password=password;Integrated Security=no
    

    如果您使用的是 Visual Studios,您可以在服务器探索中添加一个数据源,它会为您提供连接字符串。

    【讨论】:

      【解决方案4】:

      在此处发布答案,因为这是寻找 DBA PRIVILEGE 连接字符串答案时的最佳结果

      Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCL))); User ID=sys; Password=syspassword; DBA PRIVILEGE=SYSDBA
      

      【讨论】:

      • 我批准了改进。谢谢!
      猜你喜欢
      • 2013-06-17
      • 2012-04-23
      • 2013-09-05
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多