打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sql-server – 如何在SQL Server 2017中直接修改系统目录?

注意:我了解所涉及的风险,以及通过这样做破坏生产系统的可能性.无论如何,我有兴趣这样做.

每当我尝试使用系统目录时,我都会遇到这些奇怪的错误,

UPDATE sys.sql_loginsSET password_hash = PWDENCRYPT('pass')WHERE name = 'sa';

产生错误,

Msg 259 […] Ad hoc updates to system catalogs are not allowed.

我尝试了很多方法来取下训练轮,

sp_configure 'allow updates',`goreconfigurego

但是,我无法弄清楚正确的选择……

它甚至在this answer中说:

this is no longer possible (at least not without jumping through a ton of additional hoops beyond just an sp_configure option – it’s not something you ever want to do on a production system), and all of the system catalog is now exposed through read-only views like sys.objects.

好吧,如果我想跳过那些箍怎么办?我该怎么做?

解决方法:

!务必阅读警告,大胆,在底部!

允许更新的服务器配置选项在SQL Server 2005中开始呈现为无效.文档指出它不会出错,但实际上不允许对系统目录表进行任何直接更新.

现在实现这一目标的唯一方法是,完全知道这是危险的,并且不推荐使用Dedicated Admin Console (DAC) connection.

首先,您需要要更新的实际表名.您从中选择的名称只是一个系统目录View,而不是真正的Table.我通常使用以下内容:

EXEC sp_helptext N'sys.{some name here}';

然后,执行以下操作:

>使用以单用户模式重新启动实例

sudo systemctl stop mssql-serversudo -u mssql /opt/mssql/bin/sqlservr -m

需要明确的是:此步骤允许系统目录更新.连接到DAC本身以执行其他操作不需要单用户模式.
>通过专用管理控制台连接与sa或其他一些sysadmin登录连接.您可以通过在命令提示符窗口中运行以下命令在SQLCMD交互式会话中执行此操作:

sqlcmd -S admin:localhost -U sa

如果Linux SQLCMD由于某种原因不支持此功能,您可以启用远程DAC连接,然后使用Windows机器来挖掘DAC正在工作.您可以在Linux上启用DAC,:

EXEC sp_configure 'remote admin connections', 1;  RECONFIGURE;  

>在该DB中,尝试以下内容:

UPDATE sys.{whatever_name_you_found} {enter}SET [some_column] = {some_value} {enter}WHERE [some_other_column] = {the_better_be_correct_or_else_ID}; {enter}GO {enter}

在您输入GO {enter}之前,它不会执行该语句.

危险将罗宾逊!

直接编辑系统目录表时请务必小心,并且不要过于习惯这样做.只有在绝对没有其他方法来解决问题时(例如此处的情况),才应该这样做.避免直接编辑可能有几个原因,但最初想到的两个原因是:

>就像我们创建的数据模型一样,可能存在规则和工作流程,以确定我们不知道的工作方式(例如,非规范化,管理各种表格中数据状态的“业务”规则等)
>如果遇到问题并签订支持合同(我还没有看到支持协议的条款,但我很难相信这样的语言不会出现),微软很可能会做出直接修改而无法帮助你.在那里).

@Paul Randal在评论中确认:“手动编辑系统表会在数据库的引导页面中不可撤销地设置一个标记,标记您的数据库已经以这种方式进行了编辑,如果您随后遇到问题,CSS可能会决定不帮助您数据库.”

来源:https://www.icode9.com/content-2-378351.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
解决win8系统中安装mssql2005过程中出现启动服务失败
改进SQL Server数据库系统安全五步走
将SQLSERVER2005迁移到新的服务器上(在新的服务器上恢复)
忘记管理员密码的补救办法
在 Ubuntu 上安装 SQL Server
SQL Server for Linux 下一版本的公共预览
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服