导航

更改当前数据库的所有者

Posted on 2010-04-25 12:58  Phil Wang  阅读(226)  评论(0编辑  收藏  举报
sp_changedbowner   
  更改当前数据库的所有者。   
    
  语法   
  sp_changedbowner   [   @loginame   =   ]   'login'   
          [   ,   [   @map   =   ]   remap_alias_flag   ]   
    
  参数   
  [@loginame   =]   'login'   
    
  当前数据库新所有者的登录   ID。login   的数据类型为   sysname,没有默认值。login   必须是已存在的   Microsoft®   SQL   Server™   登录或   Microsoft   Windows   NT®   用户。如果   login   通过当前数据库内的现有别名或用户安全帐户已拥有访问该数据库的权限,则不能成为该数据库的所有者。为了避免这种情况,应先除去当前数据库中的别名或用户。   
    
  [@map   =]   remap_alias_flag   
    
  值为   true   或   false,表示旧数据库所有者   (dbo)   的现有别名是映射到当前数据库的新所有者还是要除去。remap_alias_flag   的数据类型为   varchar(5),默认值为   NULL,表示旧   dbo   的任何现有别名均映射到当前数据库的新所有者。false   表示除去旧数据库所有者的现有别名。   
    
  返回代码值   
  0(成功)或   1(失败)   
    
  注释   
  执行   sp_changedbowner   之后,新所有者称为数据库中的   dbo   用户。dbo   拥有执行数据库中所有活动的暗示性权限。   
    
  不能更改   master、model   或   tempdb   系统数据库的所有者。   
    
  若要显示有效   login   值的列表,请执行   sp_helplogins   存储过程。   
    
  执行只有   login   参数的   sp_changedbowner   会将数据库所有权改为   login,并将先前别名为   dbo   的用户别名映射到新数据库所有者。   
    
  权限   
  只有   sysadmin   固定服务器角色成员的成员或当前数据库的所有者才能执行   sp_changedbowner。   
    
  你可以试一试   
  进入你的查询分析器,打开你的相应的数据库,然后执行   
  EXEC   sp_changedbowner   'sa'就可以了!