小编Rea*_*ces的帖子

DDL_admin 与 db_owner 权限

我正在接管一个项目,该项目涉及删除和限制我们服务器场中所有数据库用户的权限。(娱乐时间)

当前受限的权限之一是 db_owner 权限。
正在逐案审查此权限,但常见的更改是将 db_owner 权限替换为以下内容:

我想定义两者之间的确切区别(通知客户)。
但是,据我所知,两者之间的区别应该是:

  • db_accessadmin 权限
  • db_backupoperator 权限
  • db_securityadmin 权限

所以实际上他们会失去:
[ALTER ANY USER]
[CREATE SCHEMA]
[BACKUP DATABASE], [BACKUP LOG], [CHECKPOINT]
[ALTER ANY APPLICATION ROLE],[ALTER ANY ROLE]
[DROP DATABASE]

一旦 db_owner 被上述四个角色取代,用户还有什么会丢失的吗?
这实际上在安全方面起到了很大的作用吗?

sql-server permissions

24
推荐指数
2
解决办法
7万
查看次数

验证现有用户的密码策略

我最近进入了一个环境,其中许多数据库登录都没有enforce_password_policy启用该标志。
即将进行的审计需要验证这些登录的密码。

我使用以下查询来获取登录列表以及标志是打开还是关闭。

select 
    @@SERVERNAME as servername, 
    name, 
    IS_SRVROLEMEMBER('sysadmin', name) as SYSADMIN,
    type_desc,
    create_date,
    is_policy_checked,
    is_disabled,
    password_hash,
    PWDCOMPARE(name, password_hash) as UsernameAsPassword
FROM sys.sql_logins
Run Code Online (Sandbox Code Playgroud)

但是,这并不能告诉我密码是否确实符合密码策略,因为该标志仅在创建用户时相关。

是否有已知的方法来测试现有用户的密码策略合规性?
我无法访问旧密码,我更喜欢不需要它们的方法。

security sql-server sql-server-2008-r2 password

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

DB2 是否按主键排序数据

我最近与一位同事进行了讨论,他正在推动从生产查询中删除 order by 子句,因为order by 列与主键相同

经过长时间的讨论,我试图解释他不能保证基于主键的排序,最后的结论是他不会推动更改 MSSQL 查询。
但他仍打算更改 DB2 查询。

我无法立即找到反驳 DB2 按主键排序查询的文章,目前我想知道它是否确实如此。

所以我的问题是,如果没有 order by 子句,DB2 如何对查询进行排序?它使用主键吗?
在并行系统中,如果没有 order by 子句,如何保证数据按顺序正确输出?

db2 order-by

8
推荐指数
2
解决办法
5495
查看次数

在 SQL Server 中拥有架构的目的

最近几天我一直在清理数据库权限,将它们全部分组到 AD 组中并删除孤立用户。

这让我想到了一个反复出现的场景:

  1. 查找拥有架构的用户
  2. 将架构所有权转移到 SA
  3. 删除用户

架构不受定期更改的影响,并且大多数时候它是拥有该架构的用户 dbo架构。

我一直在研究让这些用户拥有 schema 的背后的原因,但是我真的找不到合适的理由。大多数文档都谈到架构成员资格,使用架构的权限,但我很难找到关于架构所有权的很多内容。

赋予用户架构所有权的正确理由是什么?
从孤立用户中删除架构所有权是否存在任何隐患?

schema permissions sql-server-2008-r2

7
推荐指数
1
解决办法
664
查看次数

使用复合键删除

我正在尝试为具有复合键的表创建删除语句。

我想创建类似的东西:

DELETE 
FROM 
    table_example1
WHERE
    COLUMN1, COLUMN2
    IN
    (SELECT COLUMN1, COLUMN2 FROM table_example2
    WHERE
        COLUMN_DATETIME > @Period);
Run Code Online (Sandbox Code Playgroud)

在脑海中只有的组合保持COLUMN1COLUMN2是独一无二的,在自己的每一列不是唯一的。

我似乎无法理解我将如何实际执行此操作。

sql-server delete t-sql

6
推荐指数
1
解决办法
7986
查看次数

找出您的索引上次重建/重组的时间

我最近遇到了一个数据库,它在大表上有很高的碎片。

页数 > 1'000'000,碎片 99,...

我想知道这张表在没有重组/重建的情况下已经消失了多久。这样我就可以查看当天所做的更改,尝试找出原因。(而且在我的报告中看起来不错“此数据库自...以来一直没有得到妥善维护......)

由于我正在设置一项工作以快速重组受影响的表(可能是今晚),任何可以为我提供索引操作历史的解决方案都将不胜感激。如果没有,只是知道我将来可以检查这些数据将非常有帮助。

sql-server sql-server-2008-r2 index-tuning fragmentation

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

查询显示 SELECT 0

我正在查看由第三方应用程序执行的查询。该应用程序被我们的一些最终用户标记为缓慢。

它似乎INSERT记录到一个 HEAP 中,然后DELETE在会话结束后再次记录它们(没有任何选择发生?)但是在每个INSERT语句的末尾都有一个SELECT 0.

我是否从查询计划缓存中看到了某种工件?是否可能缺少某些参数?所有其他参数都清楚地标明,例如@P1

INSERT每分钟有 350 个动作,每小时有一个DELETE表中的所有内容。使用 HEAP 似乎是一个不错的例子,但是如果这个 SELECT 0 实际上是从这个堆中选择一些东西,我想知道我是否应该添加一个聚集索引。

更新:添加了一个屏幕截图来显示选择: 选择不查询

performance sql-server heap

5
推荐指数
1
解决办法
3415
查看次数

找出 SQL Server 释放内存的原因

我有一个用于共享点和 ssrs 的 SQL Server 2008 R2。SQL Server 承载两个实例。

有几分钟,两个实例都超时了,没有响应。

CPU 缓慢上升到 100%,两个实例均为 30%,操作系统为 30%(以及一些较小的东西)。

之后,16GB 的内存未从 SQL Server 分配,一些进程使用了​​几 GB 的内存(在 esxi 上不知道是哪个)。

此后,SQL Server 再次拥有最大内存量,PLE 大约为 15000。

我想知道的是,如何跟踪 SQL Server 被迫放弃内存的原因?

跟踪文件中某处的历史记录,还是 Windows 事件?(到目前为止我都击中了)

我试过:

DECLARE @log NVARCHAR(100)
SELECT @log = Substring(PATH, 1, Len(PATH) - Charindex('\', Reverse(PATH))) + '\log.trc'
FROM   sys.traces
WHERE  id = 1
SELECT 
    g.DatabaseID,
    g.LoginName,
    g.StartTime,
    g.EndTime,
    g.DatabaseName,
    g.FileName,
    e.name
FROM  ::fn_trace_gettable(@log, 0) as g
inner join sys.trace_events e on g.eventclass = e.trace_event_id 
inner join …
Run Code Online (Sandbox Code Playgroud)

sql-server memory sql-server-2008-r2 vmware

5
推荐指数
1
解决办法
204
查看次数

生成脚本的“角色”附近的语法不正确

我最近不得不多次重新创建用户。
为了方便创建用户,我会右键单击用户并选择script login ascreate toNew Query Editor Window

但是,执行此操作后,我收到一个语法错误:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'ROLE'.
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

ssms t-sql sql-server-2008-r2

5
推荐指数
1
解决办法
2295
查看次数

证明特定索引的有用性

我正在寻找一种方法来证明最近添加的一些索引对生产系统产生了积极影响。

我收集了一些 dmv 统计数据来表明索引确实被使用(经常),但需要一些方法来证明它们对选择查询有足够积极的影响,增加更新/删除时间的任何负面影响是输出。

索引使用

我正在寻找有关如何证明这些索引具有积极影响的任何见解/建议。

performance index sql-server

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