标签: security

限制 Windows 管理员访问

正如SQL Server 最佳实践所说,“ Windows 身份验证模式比 SQL 身份验证更安全”。现在我想知道:有没有办法保护 SQL Server 免受具有 Windows 管理员权限的用户的攻击?

sql-server-2008 security sql-server

11
推荐指数
1
解决办法
8364
查看次数

有没有办法找出谁更改了登录密码?

我试图找出谁更改了 SQL Server 2008 R2 中的登录密码。

我已经检查了默认跟踪 - 它没有记录该事件。默认跟踪将包括这些与安全相关的事件:

/*
    Audit Add DB user event
    Audit Add login to server role event
    Audit Add Member to DB role event
    Audit Add Role event
    Audit Add login event
    Audit Backup/Restore event
    Audit Change Database owner
    Audit DBCC event
    Audit Database Scope GDR event (Grant, Deny, Revoke)
    Audit Login Change Property event
    Audit Login Failed
    Audit Login GDR event
    Audit Schema Object GDR event
    Audit Schema Object Take Ownership
    Audit Server Starts …
Run Code Online (Sandbox Code Playgroud)

security permissions sql-server-2008-r2 logins

11
推荐指数
1
解决办法
1万
查看次数

使用 SQL CLR 的安全或性能风险

在 SQL Server 中使用 CLR 是否存在任何特定的安全或性能风险?

performance security sql-server sql-clr

11
推荐指数
2
解决办法
7996
查看次数

验证现有用户的密码策略

我最近进入了一个环境,其中许多数据库登录都没有enforce_password_policy启用该标志。
即将进行的审计需要验证这些登录的密码。

我使用以下查询来获取登录列表以及标志是打开还是关闭。

select 
    @@SERVERNAME as servername, 
    name, 
    IS_SRVROLEMEMBER('sysadmin', name) as SYSADMIN,
    type_desc,
    create_date,
    is_policy_checked,
    is_disabled,
    password_hash,
    PWDCOMPARE(name, password_hash) as UsernameAsPassword
FROM sys.sql_logins
Run Code Online (Sandbox Code Playgroud)

但是,这并不能告诉我密码是否确实符合密码策略,因为该标志仅在创建用户时相关。

是否有已知的方法来测试现有用户的密码策略合规性?
我无法访问旧密码,我更喜欢不需要它们的方法。

security sql-server sql-server-2008-r2 password

11
推荐指数
1
解决办法
2万
查看次数

当有很多用户时,DROP USER 花费的时间太长

在具有足够 RAM 和快速磁盘的 SQL Server 2014 实例上,有 160 多个用户可以访问数据库。出于某种我不知道的原因,DROP USER [username]在这个数据库中运行命令每个用户最多需要 5 秒。

将用户重新映射到登录并恢复他们的权限非常快。

在从生产中刷新 DEV 数据库的上下文中,我必须删除并重新创建所有数据库用户。所以是的,删除数据库用户并重新创建它们是必要的。

如何加速DROP USER命令?

请记住,对于我正在编写的实例,我必须运行它超过 160 次。

这是我正在使用的 SQL:

DECLARE drop_user_cur CURSOR FOR 
SELECT name FROM #drop_users

OPEN drop_user_cur
FETCH NEXT FROM drop_user_cur INTO @user

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @sql = 'use [' + @db_name + '] DROP USER [' + @user + ']'
    BEGIN TRY
        print @sql
        EXECUTE(@sql)
    END TRY
    BEGIN CATCH
        print 'ERREUR : ' + @sql …
Run Code Online (Sandbox Code Playgroud)

security sql-server

11
推荐指数
1
解决办法
1999
查看次数

用户 `dbo` 和存储在 sys.databases 中的数据库的所有者有什么区别

我们最近遇到了一个问题,其中dbo数据库中的用户具有sidowner_sidin不匹配的sys.databases。我了解数据库的所有者与角色的成员有何不同,db_owner但我一直认为用户dbo是数据库的实际所有者。不是这样吗?如果是的话有没有之间的任何真正的差异dbo,什么是中sys.databases

security sql-server

11
推荐指数
1
解决办法
7558
查看次数

什么函数在带有 SQL Server 的动态 sql 中引用标识符?

什么是用于动态 sql 生成的安全引用标识符的 SQL Server 方法。

我如何确保为动态生成的语句提供动态生成的列名,该列本身不是 SQL 注入攻击。

假设我有一个 SQL 语句,

SELECT [$col] FROM table;
Run Code Online (Sandbox Code Playgroud)

本质上与

'SELECT [' + $col + '] FROM table;'
Run Code Online (Sandbox Code Playgroud)

什么可以阻止注入攻击

$col = "name] FROM sys.objects; \r\n DROP TABLE my.accounts; \r\n\ --";
Run Code Online (Sandbox Code Playgroud)

导致

SELECT [$col] FROM table;
Run Code Online (Sandbox Code Playgroud)

security sql-server sql-injection

11
推荐指数
1
解决办法
1311
查看次数

断开数据库用户和 SQL Server 登录名之间的链接

将数据库从一个实例还原到另一个实例时,有时必须将 SQL Server 登录名重新链接到数据库用户。

这通常是通过以下程序之一来实现的。

不推荐使用的 sp_change_users_login 存储过程

use <database>
go
sp_change_users_login 'Update_one', '<datbase_user>', '<sql server login>' 
go
Run Code Online (Sandbox Code Playgroud)

更改用户命令

use <database>
go
ALTER USER [<datbase_user>] WITH LOGIN = [<sql server login>]
go
Run Code Online (Sandbox Code Playgroud)

这些命令会将孤立的数据库用户重新链接到相应的 SQL Server 登录名。

是否可以在不删除 SQL Server 登录名或数据库用户的情况下打破这种关系?

原因

  • 删除数据库用户将删除数据库中的权限。
  • 删除 SQL Server 登录名将删除密码。(散列值;DBA 未知)
  • 我将数据库用户链接到作为Windows 系统帐户的 SQL Server 登录名。

研究

我已经查看了DMVsys.database_principalssys.server_principalsDMV,但它们不可修改。

security sql-server permissions sql-server-2016

11
推荐指数
2
解决办法
838
查看次数

我应该从数据库角色 db_owner 中删除 dbo 吗?

我今天对我的数据库进行了漏洞评估。我找到了 VA2108,它建议我

ALTER ROLE [db_owner] DROP MEMBER [dbo]
Run Code Online (Sandbox Code Playgroud)

但它是任何 SQL 实例的默认设置。

我应该去吗?有什么风险吗?

在此处输入图片说明

谢谢

security sql-server azure-sql-database vulnerability-assessment

11
推荐指数
2
解决办法
1953
查看次数

锁定了我的 sa 用户

所以我试图在我的 Microsoft SQL Server Management Studio 2019 中更改一些设置。我将登录模式从混合(Windows 和 SQL 身份验证)更改为仅 Windows,现在我无法使用我的 sa 帐户登录,我没有拥有另一个具有管理员权限的帐户。

我该怎么办?任何建议将不胜感激。

authentication security sql-server windows-authentication

10
推荐指数
1
解决办法
946
查看次数