惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
爱范儿
爱范儿
小众软件
小众软件
K
Kaspersky official blog
P
Proofpoint News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
V
Vulnerabilities – Threatpost
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
C
Cybersecurity and Infrastructure Security Agency CISA
V
V2EX
C
Check Point Blog
S
Schneier on Security
P
Palo Alto Networks Blog
IT之家
IT之家
GbyAI
GbyAI
T
Threat Research - Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
Project Zero
Project Zero
Y
Y Combinator Blog
V
Visual Studio Blog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
S
Securelist
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理

博客园 - sekihin

【前端】常用VsCode插件 React席哪个能优化 20 GitHub 仓库帮助你成为 React专家 Export a named export for each HTTP method instead.(Next.js 15) Error occurred prerendering page "/_not-found".(Next.js 15) Error: Attempted to call generateViewport() from the server (Next.js 15) [cause]: TypeError: e_.createContext is not a function (Next.js 15) Cursor - AI代码编辑器的使用指南 Next.js项目中.prettierrc.json的配置 Next.js项目中.eslintrc.js的配置 - sekihin nvm: Node Version Manager PHP slim 部署Apache NestJS 部署Apache - sekihin NestJS导出API文档 ChatGPT plugins - sekihin Obisidian plugins - sekihin Build nest.js by tsconfig.json - sekihin Data Transfer Objects (DTOs) in NestJS - sekihin TypeError: stringWidth is not a function - sekihin
【SQLSERVER】备份还原除当前数据库~之外的其他数据库的bak备份
sekihin · 2025-04-09 · via 博客园 - sekihin

在使用 SQL Server 时,有些人在迁移数据库时会尽量避免采用备份→还原的步骤。原因是在还原过程中会出现晦涩难懂且奇怪的错误。

首先,确认还原时的选项中是否带有 “WITH REPLACE”。这是一个关于是否完全替换数据库的选项。

即便这样做,有时也可能无法解决问题,但从这里开始才是重点。指定数据库的路径名。由于在 Management Studio 中无法做到这一点,因此请执行以下查询。

RESTORE DATABASE TEST
FROM FILE='C:\MSSQLData\TEST.bak'
WITH REPLACE,
MOVE 'TEST' TO 'C:\MSSQLData\TEST.mdf',
MOVE 'TEST_ldf' TO 'C:\MSSQLData\TEST.ldf'

推测原因是备份文件中记录了数据库的路径,而该路径与数据库的实际路径名不匹配。通过使用 MOVE 指定与数据库路径名相符的路径,问题即可得到解决。

在 SQL Server 中设置数据库 TCP/IP 访问,可按以下步骤操作:

SQL Server 配置管理器是一个工具,借助它能对 SQL Server 的网络配置进行管理。你可以通过以下方式打开它:

  • 按下 Win + R 组合键,输入 SQLServerManager15.msc(这里的 15 对应 SQL Server 2019 版本,若为其他版本,数字会有所不同,例如 SQL Server 2017 是 14,SQL Server 2016 是 13),然后回车。
  • 也可以在开始菜单里找到 SQL Server 程序组,从中找到并打开 SQL Server 配置管理器。

在 SQL Server 配置管理器的左侧面板,展开 “SQL Server 网络配置”,选择你的 SQL Server 实例(如 MSSQLSERVER),然后在右侧面板中找到 “TCP/IP”。右键点击 “TCP/IP”,选择 “启用”。

  • 右键点击 “TCP/IP”,选择 “属性”。
  • 在 “协议” 选项卡中,确保 “已启用” 设置为 “是”。
  • 在 “IP 地址” 选项卡中:
    • 对于 “IPAll” 部分,设置 “TCP 端口” 为你想要使用的端口号,默认是 1433
    • 你可以根据需要启用或禁用其他 IP 地址。

在 SQL Server 配置管理器的左侧面板,展开 “SQL Server 服务”,右键点击你的 SQL Server 实例(如 SQL Server (MSSQLSERVER)),选择 “重启”。

若你的服务器启用了防火墙,需要开放相应的端口(如 1433),以允许外部 TCP/IP 连接。以下是在 Windows 防火墙中开放端口的示例命令:

New-NetFirewallRule -DisplayName "SQL Server TCP Port 1433" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow

可以通过在开始菜单中找到 “SQL Server 配置管理器” 来打开它;也可以使用 “运行”(Win + R)并输入 SQLServerManagerXX.msc(XX 是对应 SQL Server 版本号,如 2019 对应 15,2017 对应 14)来打开。

在 “SQL Server 服务” 中,右键单击你要配置的 SQL Server 实例(如 SQL Server (MSSQLSERVER)),选择 “停止”。

  1. 右键单击 SQL Server 实例,选择 “属性”。
  2. 在弹出的属性窗口中,切换到 “安全性” 选项卡。
  3. 在 “服务器身份验证” 区域,选择 “SQL Server 和 Windows 身份验证模式”。
  4. 点击 “确定” 保存更改。

在 “SQL Server 服务” 中,右键单击你要配置的 SQL Server 实例,选择 “启动”。

在 SQL Server 中创建用户可按以下步骤进行:

-- 在 master 数据库中创建登录名
USE master;

CREATE LOGIN new_login 
WITH PASSWORD = 'YourPassword',
CHECK_POLICY = ON,
CHECK_EXPIRATION = ON;

-- 切换到目标数据库
USE your_database;

-- 在目标数据库中创建用户并关联登录名
CREATE USER new_user FOR LOGIN new_login;

-- 授予用户对数据库的访问权限
EXEC sp_addrolemember 'db_datareader', 'new_user';
EXEC sp_addrolemember 'db_datawriter', 'new_user';

-- 授予用户数据库所有者(owner)权限
ALTER AUTHORIZATION ON DATABASE::your_database TO new_user;   

这里先在 master 数据库中创建了一个登录名 new_login,然后在目标数据库 your_database 中创建用户 new_user 并关联该登录名,最后授予该用户读取和写入数据的权限。

你可以使用 SQL Server Management Studio(SSMS)或者其他数据库客户端工具,通过 TCP/IP 协议连接到 SQL Server 实例,验证配置是否成功。连接时,服务器名称格式为 服务器 IP 地址,端口号(如 192.168.1.100,1433)。

通过以上步骤,你就可以成功设置 SQL Server 数据库的 TCP/IP 访问。