暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL Server 2008 R2迁移到SQL Server 2019需要注意的事项

skylines 2024-01-29
239

SQL Server 2008 R2版本的数据库迁移到SQL Server 2019版本上,通过这种方式完成数据库的升级。除了对数据进行迁移外,还要迁移用户,系统权限,对象权限,可能还有jobs.对象权限是在在各个数据库上的,随着数据库迁移。但是用户和一些系统权限不会随着业务的数据库进行迁移,因为用户是独立的,用户的信息是注册到系统数据库master库的。

所以,SQL Server的数据库迁移之后,包括对用户进行迁移之后,还需要单独对用户进行登录配置重置。比如下面这种情况,用户迁移之后,密码是原来的密码,但是无法登录,报了15128的错误。

##报错内容

TITLE: Microsoft SQL Server Management Studio

------------------------------


Alter failed for Login 'suxing'. (Microsoft.SqlServer.Smo)


For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=16.200.48044.0&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Alter+Login&LinkId=20476


------------------------------

ADDITIONAL INFORMATION:


An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)


------------------------------


The CHECK_POLICY and CHECK_EXPIRATION options cannot be turned OFF when MUST_CHANGE is ON. (Microsoft SQL Server, Error: 15128)


For help, click: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-15128-database-engine-error


------------------------------

BUTTONS:


OK

------------------------------

##解决方法

USE MasterGOALTER LOGIN [suxing] WITH PASSWORD = 'Xxxxxxxx'GOALTER LOGIN [suxing] WITHCHECK_POLICY = O

就是相当重置用户的密码以及密码认证策略。


接着就是处理了上面的问题,用户尽管能够登录了,但是用户没有访问任何数据库的权限。那就是会报出以下15023的错误内容.

##报错内容

TITLE: Microsoft SQL Server Management Studio

------------------------------


Create failed for User 'suxing'. (Microsoft.SqlServer.Smo)


For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=16.200.48044.0&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Create+User&LinkId=20476


------------------------------

ADDITIONAL INFORMATION:


An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)


------------------------------


User, group, or role 'suxing' already exists in the current database. (Microsoft SQL Server, Error: 15023)


For help, click: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-15023-database-engine-error


------------------------------

BUTTONS:


OK

------------------------------


##解决方法


USE {database_name}


EXEC sp_change_users_login 'Update_One', 'suxing', 'suxing'

这个就相对是设置用户与数据库的映射关系,给予用户访问某个数据库的权限。需要进入到各个数据库里执行,执行之后,用户就拥有了该数据库的访问权限,以及表等其他对象的访问权限。


以上的内容,希望能够对你有帮助。




文章转载自skylines,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论