标签: security

我放在 SQL Azure 上的数据有多安全?

我的妻子一直要求我为她的企业创建一个 Web 应用程序,从我读到的内容来看,使用 SQL Azure 将是完美的。除了几个小的(真的很大)问题。

  • 她在金融行业工作,受到严格监管。
  • 她使用的数据非常敏感,必须将暴露风险降至最低。

所以我的问题是,如果我将她的公司信息放在 SQL Azure 上,它的安全性如何?我不是在询问一般的 SQL Server/Azure 安全性。我说的是这是一个共享空间。绕过我实施的安全措施,入侵数据的可能性有多大?

security azure-sql-database

4
推荐指数
1
解决办法
540
查看次数

从特定应用程序保护数据库访问

我有一个 C#.NET 应用程序和一个 SQL Server 数据库(SQL Server 2008 R2),并且希望在从其他应用程序而不是我的应用程序访问某些表时限制对某些表的访问。

为此,我们尝试使用 CLR 触发器。但是我们做不到。请立即给出一些建议。将不胜感激!

security sql-server sql-server-2008-r2

4
推荐指数
1
解决办法
95
查看次数

创建 USER 和 LOGIN 权限

我应该给用户或角色什么权限,以便它可以在数据库中创建登录或创建用户。

sql-server-2008 security sql-server permissions logins

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

如何让一组开发人员能够查看查询计划,而不能运行跟踪或查看服务器状态?

我有一组 5 名开发人员,他们需要能够查看他们为数据库编写的查询计划,并且仅适用于该数据库。我拒绝让他们成为系统管理员的成员。我不希望他们能够在此服务器上运行跟踪,也不希望他们能够运行 dmv。

这 5 位开发人员是 Windows 组的成员。我已经让他们成为 db_owner 的成员。

这是我发现的:

  • 具有 DENY 服务器权限 ALTER TRACE 的服务器主体在尝试查看 SHOWPLAN 输出时将遇到错误 262
  • 即使数据库主体具有 SHOWPLAN 数据库权限的 GRANT,也会发生这种情况
  • 发生这种情况是因为 ALTER TRACE 权限隐含了 SHOWPLAN 权限
  • 如果数据库主体是数据库所有者,则不会发生这种情况
  • 具有 GRANT 服务器权限 ALTER TRACE 的服务器主体将能够获得 SHOWPLAN 输出,而无需为单个数据库显式授予 SHOWPLAN

只有 sysadmin 并且如果您映射到 db 中的 dbo 用户名,它不会执行检查。

有没有办法让这些开发人员能够在没有系统管理员角色或授予更改跟踪或授予查看服务器状态的情况下查看计划?

security sql-server permissions execution-plan

4
推荐指数
1
解决办法
1955
查看次数

有没有办法在服务器级别为每个数据库(包括新数据库)授予 SELECT 权限?

我有一个独特的(好吧,我认为这是独特的)情况,可以或多或少地动态创建数据库(是的,整个数据库)。

忽略与此相关的明显问题,我需要能够允许 AD 帐户读取任何数据库中的任何数据。

承认围绕所有这些的安全问题,有没有办法在服务器级别只授予一次,而不是在新数据库弹出时不断授予?我更愿意将它保持在数据阅读器级别。

具体来说: 1. 数据库是动态创建的,无需 DBA 的先验知识 2. 报告作业遍历这些数据库,如果遇到新数据库则失败。

我正在使用 SQL Server 2008R2 和 SQL Server 2014。

security sql-server sql-server-2008-r2 sql-server-2014

4
推荐指数
1
解决办法
229
查看次数

如何识别调用存储过程的程序?

作为应用程序数据库设计规范的一部分,我们被要求阻止执行一组直接从 SSMS/osql/sqlcmd 等触发的存储过程;也就是说,它们必须只被允许在应用程序本身内运行。

当我们的团队质疑这是否可行时,我们看到了一个演示,该演示将查询限制在特定系统(实际上它让查询运行,但记录到运行它的表中)。然而,这样做的过程是加密的,所以我们无法知道它是如何完成的。

我们如何做到这一点?

security sql-server stored-procedures sql-server-2014

4
推荐指数
1
解决办法
7285
查看次数

允许非系统管理员用户查看 SQL Server 执行计划

这可能吗 ?在 SQL Server 2012+ 上,授予非 sysadmin 用户访问权限以查看执行计划?并且只能对选定的数据库执行此操作吗?

security sql-server permissions execution-plan sql-server-2012

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

使用域帐户时 NT 服务帐户是否需要是 SysAdmin

我不确定我是否在谷歌上搜索错误的东西,但我找不到答案。我们正在运行 SQL 2014。SQL Server 和 SQL 代理进程都在域托管服务帐户下运行。

安装 SQL 时NT SERVICE\MSSQLSERVERNT SERVICE\SQLSERVERAGENTNT SERVICE\SQLWriterNT SERVICE\Winmgmt都设置为SysAdmins.

如果我以域用户身份运行 SQL 和 SQL 代理,我是否还需要这些 NT 服务帐户,和/或它们是否需要成为 SysAdmin?

security sql-server sql-server-2014

4
推荐指数
1
解决办法
7048
查看次数

SQL Server - 在处理传递给存储过程的动态 WHERE 子句时如何防止 SQL 注入

鉴于以下存储过程,我能否在提供的附加WHERE条件下防止 SQL 注入?

CREATE PROCEDURE [dbo].[ProtectDynamicWhereClause]
   (@TableName varchar(50),
    @OldestRecordDate varchar(15),
    @WhereCondition varchar(250) = NULL)
AS
BEGIN
    -- Protect the table name from SQL Injection.
    DECLARE @TableNameClean varchar(150) = QUOTENAME(@TableName)

    DECLARE @sql nvarchar(4000)
    SET @sql = 
            N'
            SELECT * FROM ' + 'dbo.' + @TableNameClean
            + ' WHERE EntryAge > DATEDIFF(year, @OldestRecordDate, GETDATE()) '

    IF (@WhereCondition IS NOT NULL)
    BEGIN
        SET @sql = @sql + ' AND ' + @WhereCondition
    END               

    EXEC  sp_executesql @sql, N'@TableNameClean varchar(50), @OldestRecordDate varchar(15)', 
                                @TableNameClean …
Run Code Online (Sandbox Code Playgroud)

security sql-server parameter

4
推荐指数
1
解决办法
1794
查看次数

向 SQL Server 中的 Active Directory 帐户授予管理员权限

我有一个 SQL Server 2012 实例和一个 Active Directory 组,我可以向其中添加 Active Directory 用户。我在该组中有我的个人 AD 帐户 (MyAccount) 和一个服务帐户 (ServiceAccount)。

我需要为整个实例授予对这个 AD 组的管理员访问权限。这意味着我不需要对创建的每个新表和数据库执行授权命令。该组中的任何用户都将自动能够创建、删除、插入、选择等。

甚至更棘手。我必须能够使用 Windows 身份验证通过 MyAccount 登录(我在 Windows 上登录,然后登录到 SQL Server,无需再次输入用户名-密码),并通过输入用户名和密码使用 ServiceAccount 登录。我不能被迫使用 ServiceAccount 登录 Windows(或使用该帐户运行 SSMS/SSDT/etc)才能登录 MSSQL。

配置它的最佳实践是什么?

security sql-server permissions sql-server-2012 active-directory

4
推荐指数
2
解决办法
7741
查看次数