【问题标题】:Connect to oracle database without tns and with OS authentication在没有 tns 和 OS 身份验证的情况下连接到 oracle 数据库
【发布时间】:2017-11-29 07:23:40
【问题描述】:

目前我正在使用以下连接字符串连接oracle数据库

string Source = new OracleConnectionStringBuilder()
    {
        DataSource = @"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = YOURHOST)(PORT = 1521)))(CONNECT_DATA =(SID  = TESTORACLE)))",
    }.ConnectionString;
private IDbConnection databasecon= new OracleConnection(Source);

我不知道如何使用操作系统身份验证指定连接

【问题讨论】:

  • 您仍然需要 TNS 名称文件,但您可以安装 .NET oracle 数据客户端并创建类似于 sql server 的连接字符串。不要使用 64 位 .net oracle 数据客户端.. 不起作用.. 如果您使用 32 位客户端,您必须将项目设置为针对 x86 与 AnyCPU 进行编译 我目前使用这个 Oracle 项目。你需要去Oracle官方网站注册然后下载正确的OracleDataClient
  • @MethodMan,您的评论与问题无关。当然可以使用 64 位驱动程序 - 您只需安装 64 位客户端并编译为“x64”或“AnyCPU”。当您放置完整的连接名称而不是别名时,不需要tnsnames.ora 文件。
  • @WernfriedDomscheit for Oracle Data Client 64 位版本有已知问题..阅读它..
  • @MethodMan,你对这些问题有什么参考吗?我不知道。

标签: c# .net oracle


【解决方案1】:

终于找到了创建非TNS windows认证连接字符串的方法string Source = new OracleConnectionStringBuilder() { DataSource = @"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = YOURHOST)(PORT = 1521)))(CONNECT_DATA =(SID = TESTORACLE)))", UserID = @"/", }.ConnectionString; private IDbConnection databasecon= new OracleConnection(Source);

无需用户名和密码,只需使用 UserID = @"/" 进行 Windows 身份验证

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2012-01-11
    • 2020-01-10
    • 1970-01-01
    • 2016-08-02
    • 2012-02-18
    相关资源
    最近更新 更多