我的妻子一直要求我为她的企业创建一个 Web 应用程序,从我读到的内容来看,使用 SQL Azure 将是完美的。除了几个小的(真的很大)问题。
所以我的问题是,如果我将她的公司信息放在 SQL Azure 上,它的安全性如何?我不是在询问一般的 SQL Server/Azure 安全性。我说的是这是一个共享空间。绕过我实施的安全措施,入侵数据的可能性有多大?
我有一个 C#.NET 应用程序和一个 SQL Server 数据库(SQL Server 2008 R2),并且希望在从其他应用程序而不是我的应用程序访问某些表时限制对某些表的访问。
为此,我们尝试使用 CLR 触发器。但是我们做不到。请立即给出一些建议。将不胜感激!
我应该给用户或角色什么权限,以便它可以在数据库中创建登录或创建用户。
我有一组 5 名开发人员,他们需要能够查看他们为数据库编写的查询计划,并且仅适用于该数据库。我拒绝让他们成为系统管理员的成员。我不希望他们能够在此服务器上运行跟踪,也不希望他们能够运行 dmv。
这 5 位开发人员是 Windows 组的成员。我已经让他们成为 db_owner 的成员。
这是我发现的:
只有 sysadmin 并且如果您映射到 db 中的 dbo 用户名,它不会执行检查。
有没有办法让这些开发人员能够在没有系统管理员角色或授予更改跟踪或授予查看服务器状态的情况下查看计划?
我有一个独特的(好吧,我认为这是独特的)情况,可以或多或少地动态创建数据库(是的,整个数据库)。
忽略与此相关的明显问题,我需要能够允许 AD 帐户读取任何数据库中的任何数据。
承认围绕所有这些的安全问题,有没有办法在服务器级别只授予一次,而不是在新数据库弹出时不断授予?我更愿意将它保持在数据阅读器级别。
具体来说: 1. 数据库是动态创建的,无需 DBA 的先验知识 2. 报告作业遍历这些数据库,如果遇到新数据库则失败。
我正在使用 SQL Server 2008R2 和 SQL Server 2014。
作为应用程序数据库设计规范的一部分,我们被要求阻止执行一组直接从 SSMS/osql/sqlcmd 等触发的存储过程;也就是说,它们必须只被允许在应用程序本身内运行。
当我们的团队质疑这是否可行时,我们看到了一个演示,该演示将查询限制在特定系统(实际上它让查询运行,但记录到运行它的表中)。然而,这样做的过程是加密的,所以我们无法知道它是如何完成的。
我们如何做到这一点?
这可能吗 ?在 SQL Server 2012+ 上,授予非 sysadmin 用户访问权限以查看执行计划?并且只能对选定的数据库执行此操作吗?
security sql-server permissions execution-plan sql-server-2012
我不确定我是否在谷歌上搜索错误的东西,但我找不到答案。我们正在运行 SQL 2014。SQL Server 和 SQL 代理进程都在域托管服务帐户下运行。
安装 SQL 时NT SERVICE\MSSQLSERVER,NT SERVICE\SQLSERVERAGENT、NT SERVICE\SQLWriter、NT SERVICE\Winmgmt都设置为SysAdmins.
如果我以域用户身份运行 SQL 和 SQL 代理,我是否还需要这些 NT 服务帐户,和/或它们是否需要成为 SysAdmin?
鉴于以下存储过程,我能否在提供的附加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) 我有一个 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