Questions tagged «security»

允许用户仅访问他们有权访问的数据。它还包括在网络上移动以及磁盘和备份上的存储期间对数据的保护。

3
如何从SQL Server数据库导出所有与安全相关的信息
你们可能知道,SQL Server没有提供开箱即用的解决方案来导出针对数据库中每个元素(在数据库级别以及对象级别)声明的所有与安全相关的语句。 我说的是提出这些信息的能力 所有用户 所有用户定义的角色 数据库级别的所有权限(例如GRANT CREATE FUNCTION) 对象级别的所有权限(例如,GRANT SELECT ON OBJECT :: xxx) 您可能会认为SQL Server必须具有类似这样的内容,但是SQL Server导出向导或通过右键单击对象而生成的各种脚本都不会捕获此信息。 我在网上看到了许多使用人们亲切发布的非精选脚本的“可能解决方案”,但是由于我必须100%确保捕获了所有安全信息,所以我不能完全依靠这些脚本。 我可以选择以这些为起点自己写东西,但我讨厌不得不重新发明轮子,以达到您认为很多人可能拥有的要求。 有人没有提供可以可靠地为您提供此信息的工具(作为SQL Server产品的一部分或第三方工具)吗? 或者至少,是否有一个社区支持的脚本,大多数人会同意“会做”? 谢谢!

3
有没有办法找出谁更改了登录密码?
我试图找出谁更改了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, …



1
为什么不信任PL / Python?
根据文档: PL / Python仅作为一种“不受信任的”语言提供,这意味着它不提供任何限制用户可以执行的操作的方式,因此被称为plpythonu。如果在Python中开发了安全的执行机制,则将来可能会使用受信任的变体plpython。 为什么要为Python开发安全的执行机制而不是为Perl这样的其他语言开发安全的执行机制到底为什么呢?

2
将我的sa用户锁定
因此,我试图在Microsoft SQL Server Management Studio 2019中更改一些设置。我将登录模式从混合(Windows和SQL身份验证)更改为仅Windows,现在我无法使用sa帐户登录,但我无法有另一个具有管理员权限的帐户。 我该怎么办?任何建议将不胜感激。

5
为什么要完全存储用户密码?
我偶尔会看到一些问题,询问如何安全地存储Web应用程序的用户密码(使用RDBMS,我不是在谈论Facebook或Twitter)。通常的答案是“先给密码加上盐,然后使用强大的算法(例如TDES或SHA512)对密码进行哈希处理”。 我的问题是:作为RDBMS用户,由于大多数引擎具有内置的身份验证机制,为什么我应该完全解决密码存储问题。 例如,如果某个用户X想要在我的Web应用程序上创建一个帐户用户密码Y,则如何发出以下查询错误: CREATE USER X WITH ENCRYPTED PASSWORD Y IN GROUP baseuser; 然后,在我的应用程序中,用户可以使用其凭据打开与数据库的连接,而我不必操心所有密码管理。 我看到此方法有多个优点: 如果RDBMS决定需要更改加密算法,那么我不需要进行任何操作,只需要应用安全更新即可。 对我来说,管理用户授权很容易。如果将用户提升为管理员角色,我只需要将该用户添加到相应的组即可; 现在,SQL注入已变得毫无意义,因为我可以管理权限以完全允许数据库中的每个用户(例如,在诸如SO之类的论坛中,添加新帖子,回复帖子,评论和编辑/删除自己的问题) / answers / comments); 用户帐户“匿名”可用于与我的应用程序的未经身份验证的连接; 每个用户都是他提供的数据的所有者。 但是,对于我在该主题上遇到的几乎每个问题,似乎都已达成共识,那就是这不是必须要做的事情。我的问题是:为什么? 注:第三点是允许的政策在PostgreSQL和安全政策在Microsoft SQL Server。我意识到这些概念是新来的,但是无论如何,既然它们已经出现,为什么我描述的技术没有成为处理用户帐户的标准方法?
10 security  users 

3
链接服务器风险
我正在实现一项新功能,该功能需要来自多台服务器上数据库的数据。我只需要合并所有这些服务器中的数据并对其进行排序。我想到的两个选择是: 使用链接的服务器并编写一个简单的查询,以对将在一台服务器上运行的数据进行合并和排序,并从另一台服务器收集数据。 使用应用程序从所有服务器收集数据,然后将其发送回SQL Server进行排序(不想在应用程序中实现排序)。 我们在SQL Server 2008 r2的活动/活动群集中运行服务器。所有数据库都具有相同的权限,如果您有权访问一个数据库/服务器,则对它们全部都具有权限。这是一个面向公众的应用程序(需要用户登录)。 使用链接服务器有哪些风险?我应该关注任何安全漏洞吗?在主动/主动群集中运行链接服务器是否有任何问题?与替代方案相比,会不会有任何重大的性能问题? 关于链接服务器,似乎普遍存在负面的“嗡嗡声”,但是我找不到任何具体的东西可以使我相信那里确实存在任何问题。

3
如何配置SQL Server 2012,以便它可以还原并查看用户帐户中的文件?
我有一个SQL Server 2012实例作为服务在我的计算机上运行,​​并且根据服务页面以帐户 “ NT Service \ MSSQLSERVER” 登录。但是,在计算机管理屏幕的“本地用户和组”区域中,我在其他任何地方都看不到该帐户名,因为如下面的链接所述,这不是用户帐户,而是服务名称,在该框中,微软因此很有帮助地将其标记为“帐户”。在这一点上,我可以看到很多人感到困惑。 我要完成的任务是使用SSMS对话框“查找备份文件”还原文件,该对话框使用的对话框与任何标准Windows文件打开对话框完全不同,可能是因为它正在执行“远程”作业并从SQL Server的安全上下文是最终用户混乱的另一个丰富来源,我希望这个问题可能有助于解决。 到目前为止,如果要还原我的一个文件夹中的备份.mdf / .bak文件,则必须将该文件夹设置为“所有人都可读”,否则我将无法使用SQL Server“查找备份”进入该文件夹。文件”窗口。我发现这个想法是,您正在使用GUI与具有与您不同的用户帐户和权限的服务进行对话,即使我在Windows系统管理方面有多年经验,Microsoft的所有人也都不会理会您,这很令人困惑。 我希望我错过了一些SQL Server文档页面,这些页面将告诉您在安装新的SQL Server实例之后如何设置安全性。 像这样的论坛帖子甚至让Microsoft工作人员说“这很复杂”,而在Denali中又“改变了”。现在,它在SQL Server 2012中如何工作,以及如何向SQL数据库引擎的安全性添加读取属于用户的文件的权限SID。

1
EXECUTE AS USER和EXECUTE AS LOGIN有什么区别,使第二个用户行为异常?
最近,我一直在使用EXECUTE AS LOGIN来检查某个人是否可以在我们的数据库之一中使用表函数。测试表明他可以,但他一再报告失败。 该人使用登录名“ WEB”连接到数据库,并且该数据库中的用户“ WEB”与登录名“ WEB”相关联,因此我尝试了以下脚本: -- part 1 EXECUTE AS USER = 'WEB' GO SELECT USER_NAME() AS 'user_name' ,SUSER_NAME() AS 'suser_name' ,SUSER_SNAME() AS 'suser_sname' ,SYSTEM_USER AS 'system_user' GO REVERT GO 和 -- part 2 EXECUTE AS LOGIN = 'WEB' GO SELECT USER_NAME() AS 'user_name' ,SUSER_NAME() AS 'suser_name' ,SUSER_SNAME() …



3
用户无法在SSMS中以非默认模式查看表
我在VIEW DEFINITION为一个用户的架构级别适当设置权限时遇到问题。我已经创建了架构TestSchema并添加了一些表。用户目前有权限设置为访问和修改表(SELECT,UPDATE,DELETE通过等)dbo_datareader和dbo_datawriter角色。但是,他们看不到SSMS对象资源管理器中的任何表。 我尝试授予查看定义的权限: grant view definition on SCHEMA :: [TestSchema] to [User] 那没用。我尝试设置表级权限: grant view definition on [TestSchema].[NewTable] to [User] 那也没有用。然后,我尝试了一项总括性赠款: grant view definition to [User] 那确实奏效了;他们现在可以看到TestSchema以及他们不应该访问的其他模式。 我的目标是允许用户查看给定架构中的所有表。我该怎么做?如果默认情况下我应该能够执行此操作,那么我应该查看哪些权限以查找为什么不能这样做?

1
为什么MSDB数据库值得信赖?
TRUSTWORTHY如果您不小心,该设置可能会非常危险,除特殊情况外,建议保持关闭状态。但是默认情况下,MSDB数据库TRUSTWORHTY设置ON默认。我很好奇为什么? 我已经在BOL中阅读了此条目 注意默认情况下,MSDB数据库的TRUSTWORTHY设置设置为ON。使用默认值更改此设置可能会导致使用MSDB数据库的SQL Server组件出现意外行为。 但是我对细节感到好奇。为什么MSDB需要专门TRUSTWORTHY打开电源?它使用什么功能?

1
基于客户端TCP端口的SQL Server跟踪
我有一个Windows终端服务器,其中许多用户通过RDP登录以运行应用程序。该应用程序为每个用户与SQL Server 2008 R2实例建立一个或多个连接。所有用户都使用相同的SQL登录名访问相同的数据库。我希望能够跟踪特定用户的SQL会话,但是我还没有找到一种方法来确定哪个SQL会话属于哪个用户。但是,我能够确定应用程序的每个实例使用的源TCP端口。 有没有一种方法可以基于客户端的TCP端口来跟踪SQL会话?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.