Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 可以创建用户,但不能更改它?_Sql Server_Azure - Fatal编程技术网

Sql server 可以创建用户,但不能更改它?

Sql server 可以创建用户,但不能更改它?,sql-server,azure,Sql Server,Azure,我正在尝试创建一个用户,然后在SQL Server中对其进行更改。到目前为止,我已经: CREATE LOGIN bob1 WITH PASSWORD = '!abcd1234' GO ALTER USER bob1 WITH DEFAULT_SCHEMA = dbo; GO 第一条语句有效,但第二条语句: Msg 15151,第16级,状态1,第6行 无法更改用户“bob1”,因为它不存在或您没有权限 这到底是什么意思?为什么我能够创建一个用户,却不能修改它 看来我把登录和用户搞混了。

我正在尝试创建一个用户,然后在SQL Server中对其进行更改。到目前为止,我已经:

CREATE LOGIN bob1 WITH PASSWORD = '!abcd1234' 
GO

ALTER USER bob1 WITH DEFAULT_SCHEMA = dbo;
GO
第一条语句有效,但第二条语句:

Msg 15151,第16级,状态1,第6行
无法更改用户“bob1”,因为它不存在或您没有权限

这到底是什么意思?为什么我能够创建一个用户,却不能修改它



看来我把
登录
用户
搞混了。这两个项目之间的区别是什么?

在Azure中,登录不是用户,它用于登录Azure SQL数据库,您需要创建登录用户:
为登录用户BOB1创建用户BOB1
,然后使用默认模式=dbo运行用户BOB1;。但这不是必需的,默认模式是dbo,我们无法指定它


创建登录以登录服务器/数据库,然后将用户映射到登录

之后,您需要为用户更改足够的权限/角色以访问数据库,例如:

ALTER ROLE db_owner ADD MEMBER 'bob1'

请参考此处:

在Azure中,登录不是用户,它用于登录Azure SQL数据库,您需要创建用于登录的用户:
创建用于登录BOB1的用户BOB1
,然后运行
使用默认\u SCHEMA=dbo更改用户BOB1。但这不是必需的,默认模式是
dbo
,我们无法指定它。创建登录以登录服务器/数据库,然后将用户映射到登录。
ALTER ROLE
和使用
GRANT
授予某人权限有什么区别?@David542
ALTER ROLE
是将数据库角色授予用户。授予授予某些权限。在通常情况下,拥有的权限多于。