有没有办法审核 MySQL 的登录?我希望能够为每个员工创建一个用户名,从而创建登录的审计跟踪。然而,谷歌搜索没有出现好的结果。
我们可以审计的越多越好。至少,知道谁何时登录会很好。最好看看谁在什么时候执行了什么查询。日志主要是为了告诉客户我们有它们,因为数据库中有潜在的敏感信息。
显然,能够审计每个用户(以及何时)执行的查询也将使我们能够更好地查明安全问题的原因,如果出现安全问题。
在 SQL Server 中是否可以在不登录 SQL Server 的情况下确定是否启用了混合模式身份验证?
我在 Always On 可用性组中有一对 Microsoft SQL Server 2016 节点。我正在尝试对BULK INSERT位于 Windows Server 2016 文件服务器故障转移群集上的文件执行(使用 SQL Server 2016 Management Studio 查询),但出现以下错误:
消息 4861,级别 16,状态 1
无法批量加载,因为无法打开文件“\nas2.my.domain\Microsoft SQL Server 2016 Enterprise\test.txt”。操作系统错误代码 5(访问被拒绝。)。
无论我使用活动节点名称 ( nas2.my.domain) 还是故障转移群集侦听器 ( nas.my.domain),都会发生这种情况。
环顾四周后,我发现这是由于 SQL Server 由于与BULK INSERT.
如果您使用 Windows 身份验证连接到 SQL Server,则 SQL Server 服务帐户在连接到文件服务器时会尝试模拟您的用户帐户。如果您使用 SQL Server 身份验证进行连接,它将以 SQL Server 服务帐户的身份连接到文件服务器。
如果委派和模拟配置不正确(默认状态),SQL Server 服务将无法模拟您的用户帐户,并将退回尝试以匿名用户身份连接到文件服务器。
这可以通过查看文件服务器上的安全事件日志来确认。这些事实以及有关配置无约束和约束委派的指南记录在以下链接中:
我已经尝试按照thesqldude的指南中的说明进行操作,但它仍然无法正常工作。
我尝试使用的数据库BULK INSERT不是可用性组的一部分,因此只有 MSSQL1 节点应该相关。文件服务器在 …
authentication sql-server availability-groups sql-server-2016 bulk-insert
在 Windows 上安装了 PostgreSQL 9.1 x64,设置了一个监听地址,但是在与 pgAdmin 连接时出现以下错误。不知道为什么 PostgreSQL 看到的是我的 IPv6 地址而不是我的常规 IP 地址:

为了让身份验证工作,根据错误消息,我更新pg_hba.conf了这个:
host all all fe80::c5d2:XXXX:XXXX:3bc0/12 trust
那行得通,但它很丑陋,而且太具体了。我根据 PostgreSQL 文档尝试了以下操作,但没有成功,我收到相同的“访问被拒绝”错误:
local all all trust
host all all 0.0.0.0/12 trust
Run Code Online (Sandbox Code Playgroud)
我让这个工作了,它涵盖了整个 IPv6 地址空间,但是如何指定 IPv6 范围以获得更多限制?
host mydb myuser ::/0 trust
Run Code Online (Sandbox Code Playgroud)
::/0?我们正在将 IIS/SQL Server 站点从 2008 年迁移到 2012 年,但我遇到了身份验证问题。我们使用 Windows 身份验证作为 进行身份验证DOMAIN\COMPUTER$,但这不起作用,并给出错误消息:
用户 'DOMAIN\COMPUTER$' 登录失败。原因:找不到与提供的名称匹配的登录名。[客户端:<本地机器>]
我已经验证该帐户存在,甚至删除并重新创建它
create login "DOMAIN\COMPUTER$" from windows
Run Code Online (Sandbox Code Playgroud)
如果我再做一次,我得到的回应是:
消息 15025,级别 16,状态 2,第 1 行
服务器主体 'DOMAIN\COMPUTER$' 已经存在。
(DOMAIN\COMPUTER替换为真实的域和计算机名)
所以看起来该站点正在查询 SQL Server,但 SQL Server 并没有非常努力地查看其登录信息。
我错过了什么?
当有人尝试连接到 SQL Server 实例时,会显示错误:
不可能生成 SSPI 上下文。
昨天我们停电了(不知道这个用英语怎么说),我不得不关闭我们的服务器。
寻找答案,我发现了这个:
SQL Server 2008 连接问题:无法生成 SSPI 上下文
但这对我没有帮助,因为直到昨天它们都工作正常。我不想改变任何东西。但如果有必要,我会改变它。
Obs:我现在无法重新启动服务器。
编辑:自从我回答以来,我们没有任何错误。
sql-server-2008 authentication sql-server errors connectivity
我们添加了一个服务器登录名和数据库用户,使用以下脚本将 Windows 组映射到 SQL 2008 R2 实例,并更改了匿名名称:
USE master
go
CREATE LOGIN [DOMAIN\AppUsers] FROM WINDOWS
WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
go
USE AppDb
go
CREATE USER [DOMAIN\AppUsers] FOR LOGIN
[DOMAIN\AppUsers]
go
EXEC sp_addrolemember N'db_owner', N'DOMAIN\AppUsers'
go
Run Code Online (Sandbox Code Playgroud)
当 DOMAIN\User1 帐户登录到该应用程序时,User1 可以很好地查询 dbo 架构中的表,因为 User1 是 DOMAIN\AppUsers 的成员,但该应用程序也允许用户创建表。在未指定架构的情况下创建这些表时,SQL Server 执行以下操作:
我对这些结果完全感到困惑。以下是我的问题:
我们刚刚开始在一个为简单起见而首选 SQL 身份验证的组织内使用 Windows 身份验证,所以我确信我的问题来自对差异的无知。这段代码早在我们考虑使用 Windows 身份验证之前就编写好了,所以我确信我们需要提高我们对使用 Windows 身份验证登录时创建新架构的理解,而不是数据库所有者。
如果您不知道,我是推动使用 Windows 身份验证而不是 SQL 身份验证的人。如果我们对此没有充分理解,我们将回到 …
我正在尝试设置一个 cron 作业来从我的从机中获取备份。所以我需要阻止奴隶
我发出命令
mysqladmin --user=root --password=test_pass stop-slave
Run Code Online (Sandbox Code Playgroud)
但它抛出错误:
mysqladmin: 在 'localhost' 连接到服务器失败错误:'访问被拒绝用户 'root'@'localhost'(使用密码:YES)'
现在我尝试使用命令
mysqladmin --user=root --password stop-slave
Run Code Online (Sandbox Code Playgroud)
它提示输入密码,我给了test_pass,一切都很好。
为什么会这样?什么是替代方案?
注意:顺便说一句,我的 mysql 版本是mysql-5.0.95-5,它有任何意义。
所以我试图在我的 Microsoft SQL Server Management Studio 2019 中更改一些设置。我将登录模式从混合(Windows 和 SQL 身份验证)更改为仅 Windows,现在我无法使用我的 sa 帐户登录,我没有拥有另一个具有管理员权限的帐户。
我该怎么办?任何建议将不胜感激。
当我尝试将 5.0 版本的所有数据库转储恢复到 5.6 版本时,它恢复了,之后当我尝试重新连接时,出现以下错误
ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol ref used (client option 'secure_auth' enabled)..
我尝试在 My.ini 中添加以下几行并重新启动服务,但问题一直存在。
skip-grant-tables 以下链接说它是 MYSQL 中的一个错误。
有没有人对此解决方案有任何修复?
authentication ×10
sql-server ×6
mysql ×3
security ×2
audit ×1
bulk-insert ×1
connectivity ×1
errors ×1
logins ×1
mysqladmin ×1
postgresql ×1
ssms ×1