”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 保护您的数据:如何创建不可破解的 SQL 和 MySQL 数据库副本

保护您的数据:如何创建不可破解的 SQL 和 MySQL 数据库副本

发布于2024-11-08
浏览:578

Protect Your Data: How to Create Unhackable SQL and MySQL Database Copies

锁定前规划的审慎措施可确保 SQL 或 MySQL 数据库一旦转换为只读状态,即可按预期运行,并且仍可供指定用户组访问。这种远见还保证了数据库在将来需要更新或更改时可以安全地解锁。

将数据库设置为只读有一定的吸引力,这会引起 DBA 的共鸣。就好像数据库已经成熟并准备好走向世界,不受不断更新需求的阻碍。

当然,将数据库设置为只读的原因(无论是暂时还是永久)与数据库本身一样多种多样。以下是锁定 SQL 或 MySQL 数据库内容同时允许用户访问其内容的方法的全面概述。

正如 Atif Shehzad 在 MSSQLTips 网站上敏锐指出的那样,在锁定数据库之前,必须对其进行微调以确保最佳性能。例如,您无法更新只读数据库中的统计信息,也无法创建索引或对索引进行碎片整理。此外,您无法向数据库的对象添加扩展属性、编辑其权限或添加/删除用户。

Shehzad 提供了一个细致的八步预锁定脚本,可在将数据库转换为只读之前运行。该清单涵盖了从创建事务日志备份到修改权限和更新统计信息的所有内容。

八步预锁定清单可确保您的数据库在切换为只读之前得到优化和备份。来源:MSSQLTips。

数据库优化和备份后,请使用 ALTER DATABASE [数据库名称] SET READ_ONLY 命令或系统存储过程 sp_dboption(建议使用前者,因为该存储过程已从最新版本的 SQL Server 中删除)。或者,您可以在SSMS中右键单击数据库,选择属性 > 选项,然后将数据库只读状态设置为True。 SSMS 中的数据库图标和名称将更改以指示其只读状态。

将 MySQL 数据库转换为只读状态 — 并反转该过程

将 MySQL 数据库配置为只读的一个关键动机是防止备份过程中数据丢失。 MySQL 文档库提供了在复制设置中备份主服务器和从服务器、利用全局读锁和操作 read_only 系统变量的全面指南。

来源

复制设置指南设想了主服务器 (M1)、从服务器 (S1) 和客户端(C1 连接到 M1,C2 连接到 S1)。下面概述了有助于将主设备转换为只读模式并在备份完成后将其恢复到正常操作的命令。 (请注意,在某些版本中,“ENABLED”与“1”同义,“DISABLED”相当于“0”。)

初步命令将数据库切换为只读,后续命令在完成备份后将其恢复到正常状态。来源:MySQL 文档库。

在只读状态下,数据库可以查询,但不能修改。 StackOverflow 上 2013 年 8 月 23 日发布的一篇文章解释了如何撤销然后恢复特定用户的 DML 权限,该策略不太可能影响整个数据库的性能。

版本声明 本文转载于:https://dev.to/jackwilltech/protect-your-data-how-to-create-unhackable-sql-and-mysql-database-copies-lf1?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    编程 发布于2025-07-13
  • 哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    编程 发布于2025-07-13
  • \“(1)vs.(;;):编译器优化是否消除了性能差异?\”
    \“(1)vs.(;;):编译器优化是否消除了性能差异?\”
    答案: 在大多数现代编译器中,while(1)和(1)和(;;)之间没有性能差异。编译器: perl: 1 输入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    编程 发布于2025-07-13
  • Go语言垃圾回收如何处理切片内存?
    Go语言垃圾回收如何处理切片内存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片时,了解垃圾收集行为至关重要,以避免潜在的内存泄...
    编程 发布于2025-07-13
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    删除匿名事件侦听器将匿名事件侦听器添加到元素中会提供灵活性和简单性,但是当要删除它们时,可以构成挑战,而无需替换元素本身就可以替换一个问题。 element? element.addeventlistener(event,function(){/在这里工作/},false); 要解决此问题,请考虑...
    编程 发布于2025-07-13
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-07-13
  • Python中嵌套函数与闭包的区别是什么
    Python中嵌套函数与闭包的区别是什么
    嵌套函数与python 在python中的嵌套函数不被考虑闭合,因为它们不符合以下要求:不访问局部范围scliables to incling scliables在封装范围外执行范围的局部范围。 make_printer(msg): DEF打印机(): 打印(味精) ...
    编程 发布于2025-07-13
  • Java的Map.Entry和SimpleEntry如何简化键值对管理?
    Java的Map.Entry和SimpleEntry如何简化键值对管理?
    A Comprehensive Collection for Value Pairs: Introducing Java's Map.Entry and SimpleEntryIn Java, when defining a collection where each element com...
    编程 发布于2025-07-13
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-07-13
  • 同实例无需转储复制MySQL数据库方法
    同实例无需转储复制MySQL数据库方法
    在同一实例上复制一个MySQL数据库而无需转储在同一mySQL实例上复制数据库,而无需创建InterMediate sqql script。以下方法为传统的转储和IMPORT过程提供了更简单的替代方法。 直接管道数据 MySQL手动概述了一种允许将mysqldump直接输出到MySQL clie...
    编程 发布于2025-07-13
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-07-13
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    在Microsoft Visual C 中,Microsoft consions用户strate strate strate strate strate strate strate strate strate strate strate strate strate strate strate st...
    编程 发布于2025-07-13
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-07-13
  • 用户本地时间格式及时区偏移显示指南
    用户本地时间格式及时区偏移显示指南
    在用户的语言环境格式中显示日期/时间,并使用时间偏移在向最终用户展示日期和时间时,以其localzone and格式显示它们至关重要。这确保了不同地理位置的清晰度和无缝用户体验。以下是使用JavaScript实现此目的的方法。方法:推荐方法是处理客户端的Javascript中的日期/时间格式化和时...
    编程 发布于2025-07-13
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-07-13

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3