61 sql-server azure azure-sql-database
我想使用以下模板:
-- =================================================
-- Create User as DBO template for SQL Azure Database
-- =================================================
-- For login <login_name, sysname, login_name>, create a user in the database
CREATE USER <user_name, sysname, user_name>
FOR LOGIN <login_name, sysname, login_name>
WITH DEFAULT_SCHEMA = <default_schema, sysname, dbo>
GO
-- Add user to the database owner role
EXEC sp_addrolemember N'db_owner', N'<user_name, sysname, user_name>'
GO
Run Code Online (Sandbox Code Playgroud)
我想创建一个名为user1的用户,密码为'user1pass'.我连接了我的默认数据库'authentication',我打开了一个查询窗口.
但模板对我来说没有意义.例如什么是sysname,我在哪里提供密码以及我应该使用什么作为default_schema?
特定用户需要有能力做所有事情.但是如何设置它以便他可以做任何事情,如果我让用户成为数据库所有者,那该怎么办呢?
到目前为止,我尝试过:
CREATE USER user1, sysname, user1
FOR LOGIN user1, sysname, user1
WITH DEFAULT_SCHEMA = dbo, sysname, dbo
GO
Run Code Online (Sandbox Code Playgroud)
赠送:
消息102,级别15,状态1,行1','附近的语法不正确.
和:
CREATE USER user1
FOR LOGIN user1
WITH DEFAULT_SCHEMA = dbo
GO
Run Code Online (Sandbox Code Playgroud)
赠送:
Msg 15007,Level 16,State 1,Line 1'user1'i
不是有效登录或您没有权限.
Stu*_*tLC 95
编辑 - 包含用户(v12及更高版本)
从Sql Azure 12开始,数据库将被创建为包含数据库,这将允许直接在数据库中创建用户,而无需通过主服务器登录服务器.
CREATE USER [MyUser] WITH PASSWORD = 'Secret';
ALTER ROLE [db_datareader] ADD MEMBER [MyUser];
Run Code Online (Sandbox Code Playgroud)
注意在使用包含用户时连接到数据库时,必须始终在连接字符串中指定数据库.
传统服务器登录 - 数据库用户(前12)
只是添加到@ Igorek的答案,您可以在Sql Server Management Studio中执行以下操作:
在服务器上创建新的登录
在master
(通过Available databases
降下来SSMS -这是因为USE master
不能在Azure中工作):
创建登录:
CREATE LOGIN username WITH password='password';
Run Code Online (Sandbox Code Playgroud)
在数据库中创建新用户
切换到实际数据库(再次通过可用数据库下拉列表或新连接)
CREATE USER username FROM LOGIN username;
Run Code Online (Sandbox Code Playgroud)
(我假设您希望用户和登录绑定为username
,但如果不是这样,则更改.)
现在将用户添加到相关的安全角色
EXEC sp_addrolemember N'db_owner', N'username'
GO
Run Code Online (Sandbox Code Playgroud)
(显然,应用程序用户的权限应该少于dbo
.)
Igo*_*rek 30
查看此链接以获取所有信息:https://azure.microsoft.com/en-us/blog/adding-users-to-your-sql-azure-database/
首先,您需要为SQL Azure创建登录,其语法如下:
CREATE LOGIN username WITH password='password';
Run Code Online (Sandbox Code Playgroud)
此命令需要在master db中运行.之后才能运行命令在数据库中创建用户.SQL Azure或SQL Server的工作方式是首先在服务器级创建一个登录,然后将其映射到每个数据库中的用户.
HTH
nth*_*xel 20
我按照这里的答案,但当我尝试连接我的新用户时,我收到一条错误消息说明"The server principal 'newuser' is not able to access the database 'master' under the current security context"
.
我还必须在主表中创建一个新用户才能使用SSMS成功登录.
USE [master]
GO
CREATE LOGIN [newuser] WITH PASSWORD=N'blahpw'
GO
CREATE USER [newuser] FOR LOGIN [newuser] WITH DEFAULT_SCHEMA=[dbo]
GO
USE [MyDatabase]
CREATE USER newuser FOR LOGIN newuser WITH DEFAULT_SCHEMA = dbo
GO
EXEC sp_addrolemember N'db_owner', N'newuser'
GO
Run Code Online (Sandbox Code Playgroud)
您只需在SQL DB V12中创建一个包含的用户即可.
Create user containeduser with password = 'Password'
Run Code Online (Sandbox Code Playgroud)
包含用户登录比使用master创建的登录登录数据库更有效.您可以在http://www.sqlindepth.com/contained-users-in-sql-azure-db-v12/找到更多详情.
归档时间: |
|
查看次数: |
80813 次 |
最近记录: |