SQL Azure:如何使用新登录名更改dbo用户

时间:2015-11-11 16:42:03

标签: sql-server tsql azure-sql-database

chmod中,我想将登录名SQL Azure分配给用户[login1]

我目前使用[dbo]帐户登录,请尝试以下操作:

[login1]

但是它说:

  

无法改变用户'dbo'。

我也试过这个:

ALTER USER [dbo] WITH LOGIN = [login1]

但是它说:

  

找不到用户'login1',因为它不存在或者你没有   没有许可。

我能够创建像ALTER AUTHORIZATION ON SCHEMA::[dbo] TO [login1] 这样的新表,但即使它存在,也无法在表列表中看到它。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

您无法将[dbo]重新映射到[login1],但您可以将[login1]添加到db_owner数据库角色。例如:

-- in master db
CREATE LOGIN [login1] WITH PASSWORD = '{Some Password}'
CREATE USER [login1] FOR LOGIN [login1]

-- in user db
CREATE USER [login1] FOR LOGIN [login1]
ALTER ROLE [db_owner] ADD MEMBER [login1]

答案 1 :(得分:-2)

您需要更改数据库所有者 1.创建Login1(数据库中没有用户) 2.在db exec脚本中:

dt = read.table(text="Survey     Period     Observation
                1.1        1            A
                1.1        1            A
                1.1        1            B
                1.1        2            A
                1.1        2            B
                1.2        1            A
                1.2        2            B
                1.2        3            C
                1.2        4            D", header=T)

library(dplyr)

set.seed(49)  ## just to be able to replicate the process exactly

dt %>%
  select(Survey, Period) %>%               ## select relevant columns
  distinct() %>%                           ## keep unique combinations
  group_by(Survey) %>%                     ## for each survey
  sample_n(1) %>%                          ## sample only one period
  ungroup() %>%                            ## forget about the grouping
  inner_join(dt, by=c("Survey","Period"))  ## get corresponding observations

#    Survey Period Observation
#     (dbl)  (int)      (fctr)
# 1    1.1      1           A
# 2    1.1      1           A
# 3    1.1      1           B
# 4    1.2      2           B

因此用户[dbo]将自动链接到[login1]