我们有一个遗留应用程序,我们可以完全访问源代码和运行它的平台,因此如果需要,几乎可以实施任何更改。
该应用程序是一个 Java Swing 重量级 GUI(桌面),通过 JDBC 以 2 层方式直接访问数据库。在应用程序启动时,用户输入由用户和密码组成的他/她的凭据。当前的安全架构是:
这个想法是用 Microsoft Active Directory 替换 OID,因此数据库将根据 AD 验证用户。ER 中定义的 DB 权限也可以根据用户所属的组从 AD 中检索。
假设 Oracle …
我正在使用一个现有的数据库,其中的密码是这样散列的:
DBMS_UTILITY.GET_HASH_VALUE(the_username || the_password, 1000000000, 1073741824)
Run Code Online (Sandbox Code Playgroud)
我知道由于各种原因这很糟糕(不是正确的加密安全哈希,并且 oracle 使用的算法可能会在版本之间发生变化)。但是该数据库存在,我们不太可能让他们改变这一点,因为他们有很多用户,并且不能简单地切换到正确的散列算法而不让每个人重新输入或重置密码。
现在我需要使用这个数据库进行 LDAP 身份验证(基于 OpenLDAP)。不幸的是,没有办法让 OpenLDAP 将明文密码传递给数据库(然后我可以简单地在明文密码上调用散列函数)。但是,修改 LDAP 客户端是可能的,所以如果我可以创建哈希,一切都会好起来的。
我宁愿避免连接到 Oracle 数据库来执行此操作,因为这也需要该机器上的 Oracle 客户端、数据库登录数据等。因此我想知道是否有关于GET_HASH_VALUE()可用算法的任何信息。我在谷歌上找不到任何东西,但也许它隐藏在所有有些不相关的结果之间......如果算法最近发生了变化,服务器版本是 11.2.0.3.0。
我有一个使用 SQL 2014 和 Windows Server 2012 R2 的始终可用组设置。组中有 3 个节点。SQL 服务在每个节点上作为托管服务帐户运行(每个服务器 1 个 MSA)。
我正在尝试在每个节点上创建一个链接服务器以指向当前的活动节点。因此,假设这三个服务器称为 Server1、Server2 和 Server3,而 AlwaysOn 可用性组称为 SQLAAG_PROD。我想创建到 SQLAAG_PROD 的链接服务器。
我能够为每个单独的节点创建一个链接服务器(例如 Server1 与 server2 和 Server3 的链接),并且使用安全选项可以正常工作Be made using the login's current security context。
但是,当我尝试为组侦听器创建链接服务器时,我得到了 Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON
如果我将安全模式更改为对当前活动服务器使用 SA 密码,则一切正常,但出于明显的安全原因,这不是可接受的解决方案。
我已经阅读了很多关于需要设置 SPN 并允许帐户进行委派的内容。我Trust this computer for delegation to any service (Kerberos only)在 Active Directory 中打开了 SQLAAG_PROD 对象,但仍然有同样的问题。
有没有人以前见过这个,和/或是否有关于如何设置的指南?
===更新===
不确定它是否有帮助,但是当我跑步时
select auth_scheme from sys.dm_exec_connections where session_id=@@SPID
Run Code Online (Sandbox Code Playgroud)
当直接连接到节点时,我得到 …
authentication sql-server linked-server availability-groups sql-server-2014
我的机器上安装了 PostgreSQL 9.5 版(Windows 7 Enterprise x64 位版本)。我在模式“public”中有几个数据库。我想使用 LAN 连接从另一台机器(Windows 7)使用/访问这些数据库中的一个(以便该数据库可以作为两台机器之间的共享数据库)。我想知道是否可以通过 postgresql.conf 对话窗口中的“listen_addresses”选项来完成?如果没有,有没有其他方法可以做到这一点?
我正在尝试使用 usermap 对某些用户进行对等身份验证。我想要做的是映射用户邮件阅读器,如您所见:
postgres=# \du
List of roles
Role name | Attributes | Member of
------------+------------------------------------------------+-----------
mailreader | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Run Code Online (Sandbox Code Playgroud)
进入系统的用户root,dovecot,postfix。因此,我编辑了我的pg_ident.conf并放置了以下内容:
mailmap dovecot mailreader
mailmap postfix mailreader
mailmap root mailreader
Run Code Online (Sandbox Code Playgroud)
我还编辑pg_hba.conf并附加了以下内容:
local mail all peer map=mailmap
Run Code Online (Sandbox Code Playgroud)
当我尝试通过sudo psql -U mailreader -d mail命令连接时,我得到:
psql:致命:用户“mailreader”的对等身份验证失败
错误。
我还尝试了以下配置:
local mail all ident map=mailmap
Run Code Online (Sandbox Code Playgroud)
没有任何进展。
我可以帮忙吗?
有关错误的日志是:
2017-06-27 19:10:10 UTC [1188-1] mailreader@mail LOG: provided user name …Run Code Online (Sandbox Code Playgroud) 我被锁定在本地数据库之外,过去对我有用的单用户模式选项在这里对我不起作用。我可以使用一些选项来尝试。
据说该帐户已被禁用,我认为这在单用户模式下是不可能的。
我已经尝试过的:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.DBNAME\MSSQL\Binn>net stop MSSQL$DBNAME
The SQL Server (DBNAME) service is stopping..
The SQL Server (DBNAME) service was stopped successfully.
C:\Program Files\Microsoft SQL Server\MSSQL10_50.DBNAME\MSSQL\Binn>.\sqlservr -sDBNAME -m -c
[seems to come up]
Run Code Online (Sandbox Code Playgroud)
登录尝试如下所示:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.DBNAME\MSSQL\Binn>sqlcmd -S .\DBNAME
Msg 18470, Level 14, State 1, Server MY-PC\DBNAME, Line 1
Login failed for user 'My-PC\sarahg'. Reason: The account is disabled.
Run Code Online (Sandbox Code Playgroud)
服务器输出:
2012-05-29 15:55:25.11 Logon Error: 18470, Severity: 14, State: 1.
2012-05-29 15:55:25.11 Logon Login failed for user …Run Code Online (Sandbox Code Playgroud) 为 SQL Server创建连接字符串的最佳方法是什么?
我应该使用受信任的连接字符串(Windows 身份验证)还是不受信任的连接字符串(sql server 身份验证),为什么?
我关心的是让我的连接字符串更安全,这样它就不会受到攻击的影响。
我在许多论坛上读到 Windows 身份验证更安全,如果我们使用 SQL Server 身份验证,那么用户 ID 和密码可以通过网络嗅探。
有没有一种方法可以将 mysql 指向凭据文件,而不是直接在脚本中输入帐户密码?
例子:
mysqldump --opt --credfile /etc/mysql_creds mydatabase > output.sql
Run Code Online (Sandbox Code Playgroud)
/etc/mysql_creds
username=myuser
password=ToPsEcReT
Run Code Online (Sandbox Code Playgroud) 以下似乎可能是一种相当普遍的情况,但我还没有看到任何解决方案。
我有一个 PostgreSQL 数据库,其中包含特定于 的视图,$user以便根据某些特定于数据库的 ACL 逻辑来限制数据。数据库通常通过 JDBC 访问,特别是在 Web 界面的 JSP 中。用户通过 LDAP 密码认证登录网站。
我想要的是利用从 JDBC 连接到数据库的视图。但通常这个中间层连接是使用通用用户创建的,而不是特定于登录网站的人。我相信在 Oracle 中“正确”的方法是Proxy Authentication,但 AFAIAA 没有与 PostgreSQL 等效的方法。那么该怎么做呢?
想到了一些想法:
还有其他(希望更好)的建议吗?
如果不是,为什么?
在安全审计期间,我们被问及 dbo 登录是否是交互式的。我的理解是账户是由SQL server自己自动创建和管理的,不是直接交互的。
我试图在证明一个系统管理员的用户将出现在SESSION_USER作为dbo身份验证时,但他们不完全相信。他们现在的问题是是否可以通过使用其密码登录来直接对 dbo 进行身份验证。
这可能吗?我什至不知道在哪里可以找到 dbo 的密码,如果有的话。
authentication ×10
sql-server ×4
postgresql ×3
oracle ×2
connections ×1
jdbc ×1
linux ×1
mysql ×1
pg-hba.conf ×1
remote ×1
security ×1
windows ×1