在 Windows 2008 R2 上运行 SQL Server 2005 和 2008。
我们将减少开发人员在生产中的权限 -作为 DBA,我想为自己做同样的事情,限制生产权限并在需要时提升权限。
我的主要目标是消除DBA犯的愚蠢错误,开发人员最多将在生产中拥有读取权限。我们喜欢表现得好像我们是不会犯错的超级英雄,但没有一直拥有制作权是有道理的,这是一些人推荐的最佳做法。
最好的方法是什么?日常使用和安装过程中最不痛苦的是什么?
我们目前有一个针对 DBA 的 Windows 组,该组有权访问我们所有的服务器和数据库。
我也对降低操作系统/远程登录权限感兴趣 - 但我最关心的是数据库权限。
我猜我们需要提升权限才能以 sa 身份运行跟踪,并且可能需要在我们取消旧登录的 SA 权限之前进行一些所有权清理。我们可能会遇到哪些其他问题?
感谢您的建议和分享您的经验!
我有一位同事想要访问一个 SQL Server 2008 实例。我必须给他这个实例的权利。他应该有权做的是例如
我不想给他系统管理员权限,应该给他什么权限?
在 SQL Server 中,我在特定数据库中有一个用户,我被要求仅授予他们访问该数据库的所有非系统视图的权限。我相信这可以通过编辑视图类型的安全对象并在每个视图上授予选择来完成,但是有很多很多视图。有没有更有效的方法来实现这一目标?
默认情况下,在SQL Server中,[public]角色拥有EXECUTE权利sp_executesql。
不过,我继承,其中前面的DBA已撤销的数据库服务器EXECUTE上的权利sp_executesql。
作为临时解决方法,我一直在根据需要授予EXECUTE权限sp_executesql(通过 master 数据库中的角色)。但这开始成为维护之痛。
如果我EXECUTE重新授予公众,是否有任何我需要注意的影响?
我需要一个解决方案来隐藏表中的特定列。我们有些人需要针对此数据库构建报告,特别是其中一些包含机密信息的表,但不允许查看薪水或社会保险金等项目。是否可以为用户过滤特定列?
根据MySQL 文档,您可以通过添加密码或删除匿名帐户来强化 MySQL 服务器。
如果您想防止客户端在没有密码的情况下作为匿名用户进行连接,您应该为每个匿名帐户分配一个密码,或者删除这些帐户。
在强化之前,我的用户表看起来像这样。
mysql> select user,host,password from mysql.user;
+------------------+-----------+-------------------------------------------+
| user | host | password |
+------------------+-----------+-------------------------------------------+
| root | localhost | *F3A2A51A9B0F2BE246XXXXXXXXXXXXXXXXXXXXXX |
| root | gitlab | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | gitlab | |
| debian-sys-maint | localhost | *95C1BF709B26A5BAXXXXXXXXXXXXXXXXXXXXXXXX |
| myuser | localhost | *6C8989366EAF75BB6XXXXXXXXXXXXXXXXXXXXXXX |
+------------------+-----------+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
我已经删除了所有匿名帐户,因此用户表现在看起来像这样。(我使用 puppet 来管理用户,但 puppet 有效地执行DROP USER命令)。 …
我有一个存储过程,其中包含来自许多不同表的许多不同列;我想让 20 个用户通过 Excel 访问存储过程的结果。
是否可以让用户只能访问存储过程,而不能访问基础表和视图?
我无法使用 SQL Server 身份验证登录到 SQL Server 2008。
我只能使用 Windows 身份验证模式登录。
我在安装 SQL Server 2008 R2 时只选择了默认值。
authentication security sql-server sql-server-2008-r2 logins
我有一个 Windows 终端服务器,其中有许多不同的用户通过 RDP 登录以运行应用程序。该应用程序为每个用户建立一个或多个到 SQL Server 2008 R2 实例的连接。所有用户使用相同的 SQL 登录访问相同的数据库。我希望能够跟踪特定用户的 SQL 会话,但我还没有找到确定哪个 SQL 会话属于哪个用户的方法。但是,我能够确定应用程序的每个实例正在使用的源 TCP 端口。
有没有办法根据客户端的 TCP 端口跟踪 SQL 会话?
TRUSTWORTHY如果您不小心,该设置可能会相当危险,除特定情况外,建议将其关闭。但是默认情况下,MSDB数据库TRUSTWORHTY设置ON默认。我很好奇为什么?
我已阅读BOL 中的此条目
注意默认情况下,MSDB 数据库的 TRUSTWORTHY 设置设置为 ON。更改此设置的默认值可能会导致使用 MSDB 数据库的 SQL Server 组件出现意外行为。
但我对具体情况很好奇。为什么具体MSDB需要TRUSTWORTHY开启?什么功能使用它?
security sql-server sql-server-2008-r2 sql-server-2012 sql-server-2014