mysql更改数据库所有者_SQL Server中修改数据库所有者的2种方法

在MS SQL SERVER中,我们有时候会碰到下面这种数据库,所有者是登录数据库的用户,如下图,但我们却没有办法直接在数据库管理工具中直接修改数据库所有者。这样会给我们后继的一些操作带来不便,至少对MitchellChu我来说是非常不便的,因为我后继想对登录用户的权限做些限制,因此需要寻求数据库所有者的修改办法。

eb309cd9770cbb7d234b7550ce4b7dcc.gif

修改数据库所有者的方法有两种:一种老方法,一种新方法 ——当然,都是在SQL语句中操作完成,我还没有发现可以直接在UI中操作的,如果有请告诉我。:P

1. 在以前数据库修改的办法是使用sp_changedbowner来进行的,如下方法:

USE UserTest

GO

EXEC sp_changedbowner 'username'

GO

该方法直接将数据库的所有者改变成username,当然,更详细的说明请参照SQL帮助。

但是该方法将在后继的新版本被删除,也就是说,在新版本出来(2012)之后,这个修改方法将不能使用。微软的官方是这么说的:

eb309cd9770cbb7d234b7550ce4b7dcc.gif

那么要改变数据库的所有者使用什么方式呢?

2. 早在SQL Server 2005的时候,MS SQL Server就已经提供了一个新的方法来修改数据库所有者:ALTER AUTHORIZATION

新的方法可以更改安全对象的所有权,这里的安全对象不仅限于数据库所有者一项,还有很多。

/*使用方法*/

ALTER AUTHORIZATION

ON [ :: ] entity_name

TO { SCHEMA OWNER | principal_name }

::=

{

Object | Type | XML Schema Collection | Fulltext Catalog | Schema

| Assembly | Role | Message Type | Contract | Service

| Remote Service Binding | Route | Symmetric Key | Endpoint

| Certificate | Database

}

/*

::

更改其所有者的实体的类。Object 是默认值。

entity_name

实体名。

principal_name

将拥有实体的主体名称。

ALTER AUTHORIZATION 可用于更改任何具有所有者的实体的所有权。数据库包含的实体的所有权,可以传递给任何数据库级的主体。服务器级实体的所有权只能传递给服务器级主体。

*/

比如在这里,我们需要修改所有者,那么我们用下面代码即可完成:

ALTER AUTHORIZATION ON DATABASE::DatabaseName TO UserName

GO

/*

DatabaseName就是数据库名称

UserName是用户名称

*/

使用新的方式,我们无需Use 数据库名称,在使用上比sp_changedbowner更方便些。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值