gpt4 book ai didi

sql-server - 胖客户端访问的安全 SQL Server

转载 作者:行者123 更新时间:2023-12-02 17:54:45 25 4
gpt4 key购买 nike

有没有办法保护由胖客户端访问的 sql server 数据库?含义:应用程序直接与数据库通信,因为它自己放置 sql 语句。这意味着,连接字符串必须位于客户端的某个位置。使用此连接字符串(使用 winauth 或 sql server 身份验证),任何用户都可以使用某些管理工作室或命令行访问数据库,并向数据库放置与 GUI 允许的不同的语句。
怎么办?我无法在客户端和数据库之间放置另一层,因为此架构已修复。

最佳答案

在所有安全模型中,包括 Windows 和 SQL 身份验证,访问权限被授予用户(身份),而不是应用程序。因此,必须将应用程序所需的任何访问权限授予运行该应用程序的用户。当使用 Windows 身份验证时,这意味着同一用户可以通过 SSMS 查询利用应用程序本身所需的所有权限。这是任何管理员都必须了解的基本规则。从安全的角度来看(意味着像 CC 合规性等)这是事实,任何规避它的企图都是注定要失败的。

但从实际的角度来看,还是有一定的措施可以部署的。最常用的一种是使用 logon trigger验证 APP_NAME()并且只允许从一组明确定义的客户端工作站和一组明确定义的用户访问 SSMS。

CREATE TRIGGER reject_SSMS
ON ALL SERVER WITH EXECUTE AS '...'
FOR LOGON
AS
BEGIN
IF (APP_NAME() = 'Microsoft SQL Server Management Studio'
OR APP_NAME() = 'Microsoft SQL Server Management Studio - Query')
AND (ORIGINAL_LOGIN() NOT IN (...)
OR HOST_NAME() NOT IN (...))
ROLLBACK;
END;

重要的是要了解此类机制不是安全功能,因为它们很容易被恶意用户绕过。它们更像是门锁:它们不会将小偷拒之门外,而是让诚实的用户保持诚实。

关于sql-server - 胖客户端访问的安全 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3352192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com