使用OracleSQLDeveloper,我可以将/-字符设置为用户名,并留下空密码,然后连接。我在数据库中创建了OP$MYWINDOWSUSERNAME用户。
编辑:如果我选中OS身份验证复选框(清空并禁用用户名pwd),SQL开发人员将不工作。此外,偏好-
然而,当我试图形成这样的连接字符串:
string.Format("Data Source={0}; user id=/;password=;Integrated Security=yes", dbName);
我收到ORA-01017:无效用户名/密码:登录被拒绝
具有
string.Format("Data Source={0}; user id=/;password=;Integrated Security=no", dbName);
我得到ORA-01005。
与
string.Format("Data Source={0};Integrated Security=yes", dbName);
我收到ORA-01017:无效用户名/密码:登录被拒绝
与
string.Format("Data Source={0}; user id=/;", dbName);
我得到了ORA-01005
具有
string.Format("Data Source={0};User Id=/;Integrated Security=yes;", dbName);
我得到了ORA-01017
当我指定用户名和密码时,程序中的OracleConnection和Oracle SQL Developer都可以工作。
编辑:这适用于
string.Format("Data Source={0};Integrated Security=yes", dbName);
当sqlnet.ora行
SQLNET.AUTHENTICATION_SERVICES= (NTS)
改为
SQLNET.AUTHENTICATION_SERVICES= (NONE)
如果有人写下简短的答案,说明发生了什么以及为什么,我很乐意为他/她提供赏金。
简而言之,它是由NTS表示的Windows本机操作系统身份验证。
一旦指定了NTS,oracle客户端将用户名标识为工作组\username或域\username,这与您的OP$MYWINDOWSUSERNAME数据库用户不匹配
为了让它与NTS选项一起工作,您需要在数据库用户名中包含域/工作组名称:
CREATE USER "OPS$<DOMAIN_NAME>\<OS_USERNAME>" IDENTIFIED EXTERNALLY;
Oracle支持文档750436.1通过详细的步骤证实了这一点。
SQL开发人员有时有不可理解的行为。此"OS身份验证"功能不可靠。
您应该从验证字符串中完全删除id
:
string.Format("Data Source={0}; Integrated Security=yes;", dbName);
只有当您删除NTS选项时,它才起作用,这可能意味着预期的服务没有运行,或者NTS不支持所有用户的操作系统身份验证,而只支持SYS
。这里有一些解释:
在windows环境中使用NTS服务来进行基于o/s级别身份验证的Sys用户身份验证。因此,如果您不愿意每次都提供系统用户的密码,您应该设置这个。
这里有人使用了一些你可以在它的sqlnet.ora
中尝试的东西:
SQLNET.AUTHENTICATION_SERVICES =(NONE, NTS)
它也可能取决于您的Oracle版本;这里说Oracle 12c不支持NTS
从Oracle Database 12c版本1(12.1)开始,NTS身份验证适配器不再支持使用NTLM对Windows域用户进行身份验证。因此,NTS不能用于验证旧Windows NT域或具有旧Windows NT域控制器的域中的用户。但是,作为Windows本地用户运行的本地连接和Oracle数据库服务继续使用NTLM进行身份验证。
你的问题不在于连接字符串,而在于你的Active Directory结构,以及Oracle设置使用AD的LDAP DB的能力,为什么如果你在本地DB上尝试你的代码,例如OracleXE,而不使用活动目录,你可能会成功,但是在与此同时,在分布式Oracle服务器上,您可能会遇到授权错误,因此请找到一个强大的管理员来设置您的AD和Oracle。
问题内容: sqlalchemy是Python的数据库连接模块,默认情况下使用SQL身份验证(数据库定义的用户帐户)。如果要使用Windows(域或本地)凭据对SQL Server进行身份验证,则必须更改连接字符串。 默认情况下,按照sqlalchemy的定义,连接到SQL Server的连接字符串如下: 如果使用您的Windows凭据使用,则会引发类似于以下的错误: 在此错误消息中,代码1845
问题内容: 如何使用node.js连接到mongodb? 我有node-mongodb-native驱动程序。 显然有0个文档。 是这样吗? 用户名和密码放在哪里? 另外,我该如何插入? 谢谢。 问题答案: 根据来源: 连接后:
我是OracleDB的新手。我正在研究在不提供用户名和密码的情况下将客户端应用程序连接到服务器上的Oracle DB。我的理解是正确的,这可以通过使用钱包来实现吗?我用我的笔记本电脑作为客户端和服务器来测试这一点。 我使用为客户端和服务器端创建钱包,如下所示: 将证书从一侧装入另一侧的钱包。 显示钱包会得到以下结果: 我从上面了解到,服务器和客户端现在相互信任,因此有利于建立连接。 服务器设置文件
我需要使用jdbc 4.0从java连接到Sql Server 2008。我有一个非常简单的代码: 但我有这个错误: 我按照这个回答:https://stack overflow . com/a/12524566/1554397 我在库/编译中添加了jdbc4.jar SQL 服务器浏览器窗口服务正在运行。 在SQL服务器网络配置中,我选择了在TCP/IP属性上启用。 我将TCP地址设置为1433
赛贝斯ASE版本15或以上,并使用ADO. net连接到赛贝斯。是否可以使用Windows身份验证登录到赛贝斯ASE?