热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Chapter2UserAuthentication,Authorization,andSecurity(11):

原文出处:blog.csdn.netdba_huangzjarticledetails39496517,专题目录:blog.csdn.netdba_huangzjarticledetails37906349未经作者同意,任何人不得以原创形式发布,也不得已用于商业用途,本人不负责任何法律责任。前一篇:b

原文出处:http://blog.csdn.net/dba_huangzj/article/details/39496517,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349 未经作者同意,任何人不得以原创形式发布,也不得已用于商业用途,本人不负责任何法律责任。 前一篇:http://b

原文出处:http://blog.csdn.net/dba_huangzj/article/details/39496517,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。

前一篇:http://blog.csdn.net/dba_huangzj/article/details/39473895

前言:

如果你把非包含数据库从一个服务器移到另外一个服务器,不管是备份还原还是分离附加,都有可能导致SQL用户变成孤立用户,意味着他们没有对应的登录关联。因为登录名和用户之间的映射是基于SID的,即使新服务器上有相同的登录名,但是由于SID不同,也会使得用户无法被识别,从而形成孤立用户。

如果在同一个域中迁移,那么映射问题仅会影响SQL登录,因为域账号(Windows身份验证)的SID在活动目录中是相同的。

实现:

可以用下面步骤来检查和修复通过还原或附加的形式把数据库迁移到新服务器后的孤立问题:

1.识别:

SELECT  dp.name , 
        dp.sid 
FROM    sys.database_principals dp 
        LEFT JOIN sys.server_principals sp ON dp.sid = sp.sid 
WHERE   sp.sid IS NULL 
        AND dp.type_desc = 'SQL_USER' 
        AND dp.principal_id > 4;

2.修复:

ALTER USER Fred WITH LOGIN = Fred
原理:

在不涉及包含数据库时,有几种方法可以避免或者修正孤立问题,对于SQL Server 2005 SP2之前的版本,可以使用系统存储过程:sp_change_users_login。实现,如:

USE marketing; 
exec sp_change_users_login @Action='Report'; 

如果存在孤立帐号,将会列出这些帐号的名字和SID出来,可以使用update_one或者auto_fix来修复:

EXEC sp_change_users_login @Action = 'update_one', @UserNamePattern ='fred', @LoginName = 'fred'; 
EXEC sp_change_users_login @Action = 'Auto_fix', @UserNamePattern = 'fred', @Password = 'I am s3cr3t !';
EXEC sp_change_users_login @Action = 'Auto_fix', @UserNamePattern = 'fred';

其中auto_fix会自动映射到相同的登录名中,如果登录名不存在,将会创建,并以你定义在@password中的值作为新的密码。

更多:

在很多情况下,数据库的onwer可能也会变成孤立,可以用下面语句检查:

SELECT SUSER_SNAME(owner_sid), name FROM sys.databases; 

如果返回的结果中第一行为null,意味着数据库的onwer也是孤立,需要使用下面语句修复:

ALTER AUTHORIZATION ON DATABASE::marketing TO sa;

推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
  • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
author-avatar
恨透这一切_249
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有