How to grant access to SQL logins on a standby database when the guest user is disabled in SQL Serve

宝塔面板全栈部署指南:Node后端+React前端与数据库配置实战 本文提供了一份详尽的宝塔面板全栈部署实战指南,涵盖Node.js后端、React前端与数据库的完整配置流程。文章深入解析了环境准备、数据库创建与导入、Node服务部署、PM2进程守护、React应用构建与托管,以及线上环境变量管理与安全配置等核心步骤,帮助开发者高效、稳定地将项目部署至生产环境。 阅读详情

Steps to reproduce the behavior

In the following example,  Pubs  is the database, server1 is the server that has the source database, and server2 is the server that has the standby database.

On server1, follow these steps:
  1. Modify the recovery model for the Pubs database to FULL by using the following code:
    alter database pubs set recovery full
  2. Remove the "guest" user from this database by using the following code:
    use pubs 
    go 
    sp_dropuser 'guest' 
    go

    Note If you are using SQL Server 2005, the guest user cannot be dropped. However, the guest user can be disabled by revoking its CONNECT permission and running REVOKE CONNECT FROM GUEST within any database other than the source database or the standby database.
  3. Add two SQL Server logins by using the following code:
    sp_addlogin 'testlogin1', @passwd='pwd1', @defdb='pubs' 
    go 
    sp_addlogin 'testlogin2', @passwd='pwd2', @defdb='pubs' 
    go
  4. Perform a complete backup of the Pubs database by using the following code:
    backup database pubs to disk = 'c:\pubs.bak' with init
On server2, follow these steps:
  1. Remove the Pubs database from server2.
  2. Restore the complete backup that you created in step 4 of the previous procedure on server2 in STANDBY mode. To do so, use the following statements:
    drop database pubs 
    go 
    restore database pubs from disk = 'c:\pubs.bak' 
    with move 'pubs' to 'c:\Program Files\Microsoft SQL Server\MSSQL\data\pubs.mdf', 
    move 'pubs_log' to 'c:\Program Files\Microsoft SQL Server\MSSQL\data\pubs_log.ldf', 
    standby = 'c:\Program Files\Microsoft SQL Server\MSSQL\data\pubs.udf'
    If you try to connect to server2 using the login testlogin1 or testlogin2, the login fails because testlogin1 and testlogin2 do not exist on this server. However, adding these logins to server2 does not permit access to the Pubs database.

Steps to resolve the behavior

On server1, follow this step:
  • Run the following query on server1 to get the SID information for the logins that you created in step 3 of the previous procedure:
    select name, sid from master..syslogins where name in ('testlogin1', 'testlogin2')
    The query returns output that is similar to the following output:
    name                 sid 
    -------------------- --------------------------------------
    testlogin1           0xED10269A01E2654BA89E33D42AEDFAAF 
    testlogin2           0x704C5B2CB4DB234EAE89BFBCE7B6A46F 
    
    (2 row(s) affected)
On server2, follow these steps:
  1. Drop the logins testlogin1 and testlogin2 from server2 (if you created them in a previous procedure). To do so, use the following code:
    use master 
    go 
    sp_droplogin 'testlogin1' 
    go 
    sp_droplogin 'testlogin2' 
    go
  2. Run the following queries to create testlogin1 and testlogin2 on server2 by using the following code:
    sp_addlogin 'testlogin1', @passwd='pwd1', @sid=SID value 
    go 
    sp_addlogin 'testlogin2', @passwd='pwd2', @sid=SID value 
    go
  3. After the logins are created, connect to server2 by using the login credentials for testlogin1 or testlogin2.
  4. After you connect to the server, run a SELECT query against the Pubs database.
There are two system tables that are used to store the login information for the  Pubs  database:
  • syslogins in the master database.
  • sysusers in the Pubs database.
The  syslogins  table contains all the logins that were created on the server. The  sysusers  table contains the users that are mapped to the database by using the  SID  field. If you back up the database on one server and restore the database on a second server, the backup retains the SID value for the users in the  sysusers  table. However, because the SID values in the  syslogins  table are different, users cannot query the standby database. You can correct this problem by creating logins with the same SID value as the source server.
Sigrity XtractIM实战:5步搞定IC封装宽带模型提取(附BGA案例) 本文通过一个典型BGA封装案例,详细介绍了使用Cadence Sigrity XtractIM工具进行IC封装宽带模型提取的五步实战流程。内容涵盖从环境准备、参数设置、结果验证到模型导出的完整操作,重点阐述了如何利用XtractIM生成高精度、紧凑的宽带SPICE模型,以解决高速电路设计中因封装模型不准导致的信号与电源完整性问题,助力工程师提升仿真精度与设计效率。 阅读详情

相关推荐

Windows 本地 PostgreSQL 忘记 postgres 密码后,如何重置密码并给 root 用户最高权限

<think>我们只需要根据内容生成摘要,不超过150字。摘要应该简明扼要概括主要问题和解决步骤。注意是中文摘要。</think>在Windows本地开发中,因root数据库账号无CREATEDB权限且忘记postgres超级管理员密码,通过临时修改pg_hba.conf为trust认证重置密码,并重启PostgreSQL服务进行登录,最后授予root用户SUPERUSER等权限,完成数据库创建。

MZH 34

解决AList API请求失败的终极指南:从401到500错误全解析

你是否曾在使用AList API时遇到过"401 Unauthorized"却找不到原因?或者明明权限正确却收到"403 Forbidden"?本文将系统梳理AList API请求中最棘手的五大类问题,提供可直接套用的解决方案和代码示例,让你5分钟内从API错误中恢复正常服务。 ## 认证失败:从Token无效到会话过期 认证错误是AList API最常见的"拦路虎",主要表现为401状态码。...

gitblog_00741的博客 769

STM32Cube-FW-F1-V1.8.0.rar

MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为:MDK5.40,该版本使用 uVision5 IDE 集成开发环境,是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。MDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 MDK5 上进行开发(但是头文件方面得全部自己添加), MDK5 同时加强了针对 Cortex-M 微控制器开发的支持,并且对传统的开发模式和界面进行升级,MDK5 由两个部分组成:MDK Core 和 Software Packs。其中,Software Packs 可以独立于工具链进行新芯片支持和中间库的升级。

SQL Server 数据库安全

--创建登陆用户 --create login login_name from windows with default_database = database | default_language = language; create login [localhost\hoojo-pc] from windows with default_database = testHome; --创建登陆用...

weixin_30448603的博客 155

PostgreSQL 并发约束实战(第 1 篇):排他约束如何挡住并发重复预约

两个用户同时预订会议室 A 的 10:00—11:00。两个请求都先查询“没有冲突”,随后各自插入一条预约,两个事务也都成功提交。SQL 没报错,唯一键没有重复,会议室却被卖了两次。PostgreSQL 真正形成差异的地方,不是比另一种数据库多几个数据类型,而是能把“同一资源的时间段不得重叠”变成提交时持续成立的数据库约束。这篇文章只证明这一个判断。它不证明 PostgreSQL 在所有 OLTP 场景都优于 MySQL,也不证明所有业务规则都应该塞进数据库。

weixin_42426485的博客 436

sql二次注入攻击原理

二次注入,又称二阶 SQL 注入(Second-Order SQL Injection),是一种特殊的 SQL 注入形式。一阶注入:攻击者提交的恶意数据,在当前请求中就被直接拼接到 SQL 语句并执行,攻击效果立即显现。二次注入:攻击者提交的恶意数据,在写入时被正确地转义、过滤或使用参数化处理,安全地存储进数据库;但当这些数据在后续的某个请求中被读取出来,并再次被拼接进新的 SQL 语句执行时,由于未做二次过滤,注入漏洞才真正被触发。"第一次存储是安全的,第二次使用时是危险的。

2303_82039857的博客 282

【好靶场】SQL 注入-布尔盲注-1

本题表面上是一个“根据用户 ID 判断用户是否存在”的功能。{"exists":true,"message":"用户存在","status":"success"}{"exists":false,"message":"用户不存在","status":"success"}这种通过响应中的真假差异来推断数据库查询结果的漏洞,就是布尔盲注。定位 /check?id= 接口↓观察 exists 字段的真假↓构造恒真、恒假条件确认注入↓确定输入需要使用 ') 闭合↓。

Sagittarius_A*的博客 224

PostgreSQL 日报 | PG19 外键快速路径越界写入(8 月 30 日)

通过智能化的信息筛选、内容提炼与实践工具,PGNexus 帮助用户更高效地了解 PostgreSQL 技术动态,参与社区协作,并完成从学习到验证的完整闭环。Andrey Borodin 支持将随机化范围限制在 SPLIT_DEFAULT 叶页分裂,指出仅在等惩罚值候选位置中随机选择,既能保留现有的后缀截断行为,又能使页面占用率维持在目标附近。问题的根源在于:子查询中包含引用连接列的 CASE 表达式,子查询被上拉后,eval_const_expressions 将该 CASE 化简为…

IvorySQL的博客 223

PostgreSQL 数据正确性实战(第 4 篇):ON CONFLICT 两次都成功,旧订单为什么覆盖新状态

订单版本 105 的“已支付”先写入,版本 103 的“已取消”因网络重试后到。两次 UPSERT 都成功,结果却退回旧状态。能原子裁决“写哪一行”,不能替业务定义“哪个事件更新”。唯一键幂等、业务顺序和消息 Exactly-Once 是三种不同保证。

weixin_42426485的博客 250

Rocky Linux 8 从零安装 psql(PostgreSQL 客户端)

连接远程pgpsql -h ip地址 -p 端口 -U用户名 -d数据库名#本地登录(操作系统身份认证)psql

m0_62164804的博客 225

MySQL 数据库从入门到实战:原理、安装与 SQL 详解

> **摘要**:本文是一份系统性的 MySQL 数据库学习教程,内容涵盖数据库基础理论、MySQL 安装与基本使用、以及 SQL 语言三大核心模块。首先从数据的分类、数据管理发展历史、数据库管理系统(DBMS)及关系型数据库理论(E-R 模型、范式)入手,帮助读者建立扎实的理论基础;随后详细介绍 MySQL 的安装、多实例配置、主要组成与常用客户端工具(mysql、mysqladmin、mycli 等);最后深入讲解 SQL 语言,包括数据库与表的 DDL 操作、数据的增删改查(DML)以及查询(DQL)

2403_88632628的博客 199

PostgreSQL VACUUM 运维实战(第 7 篇):Autovacuum 一直在跑,死元组为什么越积越多

值班人员看到持续活跃,就判断清理正常。可订单表每分钟制造 50 万个 dead tuple,VACUUM 每分钟只消化 20 万个:任务没停,债务却以每分钟 30 万个增长。Autovacuum 是否有效,不能看进程是否存在,要看可回收量、触发等待、排队时间和清理吞吐能否压住 dead tuple 的净增长。

weixin_42426485的博客 330

FastAPI + SQLAlchemy 异步会话(AsyncSession)核心方法

result = await db.execute(select(News).where(...)) # 执行查询,返回 Result 对象。items = result.scalars().all() # 提取 Python 对象列表。await db.refresh(new_news) # 将生成的ID加载到本地对象。await db.commit() # 自动检测到对象变更,生成UPDATE发送。# ① 标记操作(内存中记录,未发SQL

m0_52302665的博客 297

少敲一个字母,GreatSQL 对所有查询“已读不回”

为什么用mysql -root也能登录,会出现什么奇奇怪怪的事?

GreatSQL2021的博客 231

# Text2SQL 工程实战:用 Qdrant 向量库让系统理解数据库结构

<think>我们根据要求,需要根据提供的内容生成≤150字的文章摘要。用户说“根据以下内容,生成≤150字的文章摘要”,内容是一篇关于Text2SQL工程实战的文章,讲用Qdrant向量库让系统理解数据库结构。我们需要写一个摘要,概括文章主旨、主要内容、亮点(比如10个踩坑点、完整代码、架构等)。要控制在150字以内。 注意是“文章摘要”,不是“导读”。应该用简洁的语言概括。我们输出摘要即可。 先思考内容:文章主要解决Text2SQL系统中大模型理解数据库结构的问题,提出用向量库(Qdrant)对Sche

l125865的博客 429

修复安全漏洞,支持MCP模型配置,SQLBot开源智能问数系统v1.10.1版本发布

SQL示例和术语列表两大核心功能模块新增过滤搜索功能。

FIT2CLOUD飞致云的博客 172

MySQL 中如何进行 SQL 调优?

它不是一个孤立的技巧,而是一套围绕「解析、优化、执行」全链路展开的系统性工作。

m0_66083353的博客 1036

Sql和Navicat的介绍与应用

SQL(Structured Query Language)是一种用于管理和操作关系数据库的标准语言,包括数据查询、数据插入、数据更新、数据删除、数据库结构创建和修改等功能。语句中的 * 是指所有的列的意思,from后面跟的是表名,查哪张表后面就改成对应表的名字。有个as关键字,可以看到下图,搜索出来的列名被更改为as后面的名字,其中as可以省略。where后面可以拼接条件,执行后可以查询出满足条件的数据。这句就把 * 替换成了具体的列名,只显示需要的列。

蒙奇不想敲代码的博客 36

【好靶场】SQL 注入-字符型

本题表面上是一个按姓名查询数据的功能,真正的难点并不在于记住最后一条 Payload,而在于正确判断用户输入在后端 SQL 中所处的位置。SELECT * FROM users WHERE (name = '$用户可控输入')外层括号:(...)字符串单引号:'...'因此,直接提交普通单引号时,往往只能破坏字符串边界,却没有处理外层括号;最终 SQL 仍然可能因为括号不匹配而报错。'):闭合原 SQL 中包裹姓名值的单引号;:闭合原 SQL 中包裹name = ...的外层括号。

Sagittarius_A*的博客 505

PostgreSQL 入门与实践:从零搭建一个 CRUD 应用

PostgreSQL 是一个功能强大、生态丰富的开源数据库,无论是简单的 CRUD 应用还是复杂的数据分析场景,它都能胜任。使用 Docker Compose 可以轻松搭建 PostgreSQL 开发环境Spring Boot + Spring Data JPA 提供了简洁的数据库操作方式通过 SQL 脚本管理表结构,比 Hibernate 自动 DDL 更可控环境变量配置让应用在不同环境(开发、测试、生产)间灵活切换如果你正在为下一个项目选择数据库,PostgreSQL 绝对值得认真考虑。

wangchunyu114的博客 233

Text2SQL智能体基础到实战 - 网易云课堂

从动态的 Schema 检索、强约束的 Prompt 构建,到执行前的语法与安全校验,再到执行后的二次调用总结,每一个环节都是保障准确率的基石。综上所述,Text2SQL 的成败,取决于系统对业务真实需求的敬畏与还原程度。只有摒弃唯技术论,将深厚的业务知识注入 AI 的决策链路,用确定性的工程架构去驾驭概率性的生成模型,才能真正打造出懂业务、可信赖的企业级数据智能体。因此,真正成熟的 Text2SQL 系统,其本质绝不是简单的自然语言到 SQL 的语法翻译,而是一项将不确定性压缩为确定性决策的知识工程。

2601_96680427的博客 147
上一篇: 自定义脚本通过SMTP邮箱发送邮件
下一篇: Varbinary转换成等长的varchar
pbsh
博客等级 码龄25年 71粉丝 38原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值