Microsoft 已知某些防病毒软件的实现会导致SQL Server 出现各种问题,并且 Microsoft 有一篇支持文章专门用于为您的 SQL Server 主机选择正确的防病毒软件。
根据您的经验,在您的数据库服务器上运行防病毒软件是否安全?
考虑到所有必需的防病毒排除和注意事项,它是否实用?
我有一个 SQL Server 实例,每晚运行 5 个计划任务,每个任务都运行 SSIS 包。
这些包已运行多年,相关步骤通过代理帐户 (PackageExecutor) 运行。PackageExecuter 与以前是域管理员帐户的 SQL 凭据相关联。
很快,与此管理员帐户关联的域将被关闭。我必须在新域上使用一个新帐户作为与我的 roxy PackageExecutor 关联的管理员帐户。当我为新的管理员帐户创建一个新的凭据并将其与 PackageExecutor 关联时,当我尝试运行我的 SQL 作业之一作为测试时,我开始收到以下错误:
Unable to start execution of step 1 (reason: Error authenticating
proxy *Domain\Admin_Account*@*fully.qualified.domain.com*, system
error: Logon failure: unknown user name or bad password.). The step
failed.
Run Code Online (Sandbox Code Playgroud)
如果我理解这个相当明确的错误,它告诉我的是与我的代理关联的凭据帐户是正确的。我如何验证这一点?
我知道这个帐户是合法的——我已经将它与每个关联的服务器组相关联,我已经将它设置为服务器上的 sysadmin 用户。
什么可能导致这个问题?
需要明确的是,我没有错误输入与代理凭据关联的帐户名或密码。但是,当我输入帐户名Domain\Admin_Account并单击“检查名称”按钮时,SQL Server 会自动将用户 ID 转换为完全限定版本。我不确定这是否与此问题有关。
我有点不知所措。我已授予我的凭证帐户对我能想到的所有内容的完全访问权限。我可能需要做什么才能让它发挥作用?
更新
抱歉,再提一提。我找到了这篇 MSDN kb 文章。解决方法#1 是我多年来一直在做的。其他人似乎不适用,或者我遗漏了一些东西。任何提示或澄清将是有益的。
题:
我正在尝试创建一个(自签名)证书并跨多个数据库和实例进行部署。
我创建和备份证书:
USE MASTER
CREATE CERTIFICATE DavesCert ENCRYPTION BY PASSWORD ='S3creT!' WITH SUBJECT = 'The master cert'
BACKUP CERTIFICATE DavesCert TO FILE = 'd:\DavesCert.cer'
WITH PRIVATE KEY ( DECRYPTION BY PASSWORD = 'S3creT!' ,
FILE = 'd:\DavesCert.pvk' ,
ENCRYPTION BY PASSWORD = 'S3creT!' );
Run Code Online (Sandbox Code Playgroud)
我用
USE FOO
GO
CREATE CERTIFICATE ERecruitStatsGatheringCert
FROM FILE = 'd:\DavesCert.cer'
WITH PRIVATE KEY (FILE = 'd:\DavesCert.pvk',
DECRYPTION BY PASSWORD = 'S3creT!')
Run Code Online (Sandbox Code Playgroud)
并收到以下错误:“请在数据库中创建主密钥或在执行此操作之前在会话中打开主密钥。”
我不想创建数据库主密钥。我很高兴根据需要通过密码解密证书。
背景: SaaS 应用程序。数据库和实例之间的多对多关系。
我需要每个数据库都能够通过执行一个存储过程来查询它自己的统计信息,该存储过程包含对 DMV 的一些调用以返回统计信息。
应用程序在低权限帐户下运行。DMV 需要 VIEW SERVER STATE …
我在 SSAS 2012 中有一个大约有 30 个维度的多维数据集,其中一个是Company.
该Company维度包含公司列表,多维数据集中有数百家公司。我们的安全模型要求用户只能Company看到分配给他们的那些值。
在我们的SQL Server环境中,我们控制通过一系列的功能,此访问JOIN中编VIEW秒。这些函数返回一个列出所有Company值的表,用于过滤结果。
例如:
CREATE VIEW dbo.FakeView
AS
SELECT d.*
FROM FunctionToGetAccess(SYSTEM_USER) f
INNER JOIN DataTable d
ON d.CompanyID = f.CompanyID
Run Code Online (Sandbox Code Playgroud)
有没有办法将这个逻辑或类似的逻辑移植到 SSAS 中的维度级别安全性?
一些注意事项:
我在本机模式下在 SQL Server 2008 上设置了 SSRS。
作为管理员,我可以登录报表管理器,上传报表并运行它们,还可以使用 Web 服务 URL 生成报表。
我还在机器上创建了一个本地用户,我以管理员身份进入报告管理器,并在顶级设置权限,应该将本地用户分配给所有角色。
当我以该用户身份登录机器,然后导航到报告管理器时,我只看到页面的标题,但看不到任何配置的文件夹。
我已经检查过,文件夹被设置为继承父权限,它们也在那里显示新创建的本地用户。
我设置了权限似乎很奇怪,但 SSRS 仍然没有显示我应该能够看到的内容。除了在报表管理器中配置权限之外,我还需要采取其他步骤吗?
以新创建的本地用户身份登录时:
Report Manager - Shows the heading for the page, but no folders/items
Web Service URL (http://machine/ReportServer) - rsAccessDeniedError
Run Code Online (Sandbox Code Playgroud) 假设您有一个带有“链接服务器”的 SQL Server 到另一台服务器 - 所说的“链接服务器”设置为使用“使用登录的当前安全上下文进行”作为其身份验证模型。
当所有服务器都拥有一个哈希时,SQL Server 如何向其他服务器提供正确的密码(在处理非 Windows 凭据时)。
我之前已经将登录名从服务器传输到服务器,我知道哈希值单独存储在 SQL 中,并且在使用密码创建登录名时,这通常显示为十六进制值,例如:
create login test with password = '0x22A9AE652CFC38938D56A9C3872B266B192D16E4' hashed
Run Code Online (Sandbox Code Playgroud)
如果 SQL 只有一个可用的散列 - 它可以使用散列登录到远程服务器吗?或者原始(未散列的)密码是否在整个连接期间都保存在用户的会话/内存中,然后 SQL 可以检索并传递到远程服务器进行登录?
如果服务器可以使用哈希而不是密码登录 - 这可以在正常登录中完成还是纯粹是链接服务器的内部功能?
纯粹是一个好奇的问题——喜欢了解这些东西是如何运作的。
我在一个项目中工作,客户害怕他们自己的员工(即:客户不信任的初级 IT 人员)查询数据库以获取敏感信息。
数据库是一个新的SQL Server数据库,所以我有一些自由。
谷歌搜索了一下,我来到了 SQL Server Transparent Data Encryption,想知道这是否是我需要的,如果不是......
加密数据库中所有表中的所有列以防止用户查询数据库的最佳做法是什么?
我在 Azure 虚拟机上运行 SQL Server。我在服务器的事件日志中注意到许多失败的 SQL 登录尝试使用大量不同的用户名(都不存在):
用户 'kisadminnew1' 登录失败。原因:找不到与提供的名称匹配的登录名。[客户:124.117.233.94]
用户“djapple”登录失败。原因:找不到与提供的名称匹配的登录名。[客户:124.117.233.94]
用户“中国”登录失败。原因:找不到与提供的名称匹配的登录名。[客户:124.117.233.94]
用户 'vice' 登录失败。原因:找不到与提供的名称匹配的登录名。[客户:124.117.233.94]
总之,一夜之间可能同时进行了数百次随机尝试。
我应该担心这个吗?看起来是否有人试图通过蛮力访问我的 SQL Server,这是否常见?
我想在数据库的 schema1 上向用户 A 授予 Create 、 alter 和 drop 权限。我想这个问题已经被问到了,我发现的是将更改授予架构并将创建表授予用户 A:
GRANT ALTER, DELETE, EXECUTE, INSERT, SELECT, UPDATE ON SCHEMA::schema1 TO user A;
GRANT CREATE TABLE TO User A;
如果这是正确的,那么 userA 是否也可以在其他模式上创建表?
我需要运行sp_BlitzGlenn Berry 的 Dr DMV 并为 SQL 2016 设置一堆 DMV 查询sp_Blitz。BrentOzar.com 上的文档指出“系统管理员权限。sp_Blitz® 检查大量系统级诊断数据。”
sysadmin 真的是所需的最低权限级别还是有人能够以更严格的权限级别运行它?
不确定我是否会在客户端的生产服务器上请求 sysadmin 权限。
security ×10
sql-server ×10
permissions ×3
azure-vm ×1
certificate ×1
dimension ×1
encryption ×1
logins ×1
logs ×1
schema ×1
signature ×1
sp-blitz ×1
ssas ×1
ssis ×1
ssrs ×1