programing

SQL Azure 데이터베이스에서 새 사용자를 만들려면 어떻게하나요?

nasanasas 2020. 12. 10. 20:28
반응형

SQL Azure 데이터베이스에서 새 사용자를 만들려면 어떻게하나요?


다음 템플릿을 사용하려고합니다.

-- =================================================
-- 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

비밀번호가 'user1pass'인 user1이라는 사용자를 만들고 싶습니다. 기본 데이터베이스 '인증'에 연결했고 쿼리 창이 열려 있습니다.

그러나 템플릿은 저에게 의미가 없습니다. 예를 들어 sysname은 무엇이며 암호는 어디에 제공해야하며 default_schema로 무엇을 사용해야합니까?

특정 사용자는 모든 것을 할 수있는 권한이 필요합니다. 하지만 그가 모든 것을 할 수 있도록 어떻게 설정해야하나요? 사용자를 데이터베이스 소유자로 만들면 어떻게 되나요?

지금까지 시도했습니다.

CREATE USER user1, sysname, user1
    FOR LOGIN user1, sysname, user1
    WITH DEFAULT_SCHEMA = dbo, sysname, dbo
GO

기부:

메시지 102, 수준 15, 상태 1, 줄 1 ','근처에 잘못된 구문이 있습니다.

과:

CREATE USER user1
    FOR LOGIN user1
    WITH DEFAULT_SCHEMA = dbo
GO

기부:

메시지 15007, 수준 16, 상태 1, 줄 1 'user1'i

유효한 로그인이 아니거나 권한이 없습니다.


모든 정보는이 링크를 확인하십시오. https://azure.microsoft.com/en-us/blog/adding-users-to-your-sql-azure-database/

먼저 SQL Azure에 대한 로그인을 만들어야합니다. 구문은 다음과 같습니다.

CREATE LOGIN username WITH password='password';

이 명령은 master db에서 실행해야합니다. 그 후에 만 ​​명령을 실행하여 데이터베이스에 사용자를 만들 수 있습니다. SQL Azure 또는 SQL Server가 작동하는 방식은 먼저 서버 수준에서 만든 로그인이 있고 모든 데이터베이스의 사용자에게 매핑된다는 것입니다.

HTH


편집-포함 된 사용자 (v12 이상)

는 SQL 애저 (12)로, 데이터베이스는 다음과 같이 생성됩니다 포함 된 데이터베이스 마스터를 통해 서버에 로그인 할 필요없이, 사용자가 데이터베이스에 직접 생성 할 수 있습니다.

CREATE USER [MyUser] WITH PASSWORD = 'Secret';
ALTER ROLE [db_datareader] ADD MEMBER [MyUser];

포함 된 사용자를 사용할 때 데이터베이스에 연결할 때 항상 연결 문자열에 데이터베이스를 지정해야합니다.

포함 된 사용자를 통해 연결

기존 서버 로그인-데이터베이스 사용자 (12 이전 버전)

@Igorek의 답변에 추가하기 위해 Sql Server Management Studio에서 다음을 수행 할 수 있습니다.

서버에 새 로그인 만들기
에서를 master합니다 (통해 Available databasesSSMS에 드롭 다운 - 때문이다 USE master푸른에 일을하지 않습니다)

여기에 이미지 설명 입력

로그인 생성 :

CREATE LOGIN username WITH password='password';

데이터베이스에 새 사용자 만들기
실제 데이터베이스로 전환 (다시 사용 가능한 데이터베이스 드롭 다운 또는 새 연결을 통해)

CREATE USER username FROM LOGIN username;

(사용자와 로그인이으로 연결되기를 원한다고 가정 username했지만 그렇지 않은 경우 변경하십시오.)

이제 관련 보안 역할에 사용자를 추가하십시오.

EXEC sp_addrolemember N'db_owner', N'username'
GO

(Obviously an app user should have less privileges than dbo.)


I followed the answers here but when I tried to connect with my new user, I got an error message stating "The server principal 'newuser' is not able to access the database 'master' under the current security context".

I had to also create a new user in the master table to successfully log in with 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

I use the Azure Management console tool of CodePlex, with a very useful GUI, try it. You can save type some code.


You can simply create a contained user in SQL DB V12.

Create user containeduser with password = 'Password'

Contained user login is more efficient than login to the database using the login created by master. You can find more details @ http://www.sqlindepth.com/contained-users-in-sql-azure-db-v12/


create a user and then add user to a specific role:

CREATE USER [test] WITH PASSWORD=N'<strong password>'
go
ALTER ROLE [db_datareader] ADD MEMBER [test]
go

I think the templates use the following notation: variable name, variable type, default value.

Sysname is a built-in data type which can hold the names of system objects.

It is limited to 128 Unicode character.

-- same as sysname type
declare @my_sysname nvarchar(128);

I found this link very helpful:
https://azure.microsoft.com/en-gb/documentation/articles/sql-database-manage-logins/

It details things like:
- Azure SQL Database subscriber account
- Using Azure Active Directory users to access the database
- Server-level principal accounts (unrestricted access)
- Adding users to the dbmanager database role

I used this and Stuart's answer to do the following:
On the master database (see link as to who has permissions on this):

CREATE LOGIN [MyAdmin] with password='ReallySecurePassword'

And then on the database in question:

CREATE USER [MyAdmin] FROM LOGIN [MyAdmin]
ALTER ROLE db_owner ADD MEMBER [MyAdmin]

You can also create users like this, according to the link:

CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;

참고 URL : https://stackoverflow.com/questions/19094970/how-do-i-create-a-new-user-in-a-sql-azure-database

반응형