내보내기(0) 인쇄
모두 확장

Azure SQL 데이터베이스에서 데이터베이스 및 로그인 관리

업데이트 날짜: 2014년 11월

Microsoft Azure SQL 데이터베이스에서 서비스를 등록하면 프로비전 프로세스에서 Azure SQL 데이터베이스 서버, master 데이터베이스 및 Azure SQL 데이터베이스 서버의 서버 수준 보안 주체인 로그인이 만들어집니다. 이 로그인은 내부 SQL Server 인스턴스의 서버 수준 보안 주체인 sa와 유사합니다.

이 Azure SQL 데이터베이스 서버 수준 보안 주체 계정에는 항상 모든 서버 수준 및 데이터베이스 수준의 보안을 관리할 수 있는 권한이 부여됩니다. 이 항목에서는 서버 수준 보안 주체와 기타 계정을 사용하여 Microsoft Azure SQL 데이터베이스에서 로그인과 데이터베이스를 관리하는 방법을 설명합니다.  

Microsoft Azure SQL 데이터베이스의 보안 관리는 SQL Server의 온-프레미스 인스턴스에 대한 보안 관리와 유사합니다. 데이터베이스 수준의 보안 관리는 사용 가능한 매개 변수만 다르고 거의 동일합니다. Azure SQL 데이터베이스를 하나 이상의 물리적 컴퓨터로 확장할 수 있으므로 Microsoft Azure SQL 데이터베이스에서는 서버 수준 관리에 대해 다른 전략을 사용합니다. 다음 표에는 내부 SQL Server에 대한 보안 관리가 Microsoft Azure SQL 데이터베이스과 어떻게 다른지 요약되어 있습니다.

 

차이점 내부 SQL Server Microsoft Azure SQL 데이터베이스

서버 수준 보안을 관리하는 위치

SQL Server Management Studio 개체 탐색기Security 폴더

master 데이터베이스

로그인을 만들 수 있는 서버 수준 보안 역할

securityadmin 고정 서버 역할

자세한 내용은 서버 수준 역할을 참조하십시오.

master 데이터베이스의 loginmanager 데이터베이스 역할

로그인 관리 명령

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

몇 가지 매개 변수 제한이 있으며 master 데이터베이스에 연결해야 합니다.

모든 로그인이 표시된 뷰

sys.syslogins(SQL Server 인증 로그인을 위한 sys.sql_logins)

sys.sql_logins

master 데이터베이스에 연결해야 합니다.

데이터베이스를 만들 수 있는 서버 수준 역할

dbcreator 고정 데이터베이스 역할

자세한 내용은 서버 수준 역할을 참조하십시오.

master 데이터베이스의 dbmanager 데이터베이스 역할

데이터베이스 만들기 명령

CREATE DATABASE

CREATE DATABASE

몇 가지 매개 변수 제한이 있으며 master 데이터베이스에 연결해야 합니다.

데이터베이스 삭제

DROP DATABASE

DROP DATABASE

dbmanager 역할의 사용자는 데이터베이스를 원래 만든 사용자에 관계없이 데이터베이스를 DROP할 수 있는 권한을 가집니다.

모든 데이터베이스가 표시된 뷰

sys.databases

(뷰)

sys.databases

master 데이터베이스에 연결해야 합니다.

Azure SQL 데이터베이스 서버는 데이터베이스 그룹화를 정의하는 추상적 표현입니다. Azure SQL 데이터베이스 서버에 연결된 데이터베이스는 Microsoft 데이터 센터의 개별 물리적 컴퓨터에 상주할 수 있습니다. master라는 단일 데이터베이스를 사용하여 모든 데이터베이스에 대해 서버 수준 관리를 수행합니다.

master 데이터베이스는 로그인과 어느 로그인에 데이터베이스나 다른 로그인을 만들 수 있는 권한이 있는지 추적합니다. 로그인이나 데이터베이스를 CREATE, ALTER 또는 DROP할 때마다 master 데이터베이스에 연결해야 합니다. 또한 master 데이터베이스에는 로그인과 데이터베이스를 보는 데 사용할 수 있는 sys.sql_logins 뷰와 sys.databases 뷰가 있습니다.

note참고
데이터베이스 간을 전환하는 데 USE 명령을 사용할 수 없습니다. 대상 데이터베이스에 직접 연결하십시오.

내부 Microsoft Azure SQL 데이터베이스 인스턴스의 경우와 동일한 방법으로 SQL Server에서 사용자 및 개체에 대한 데이터베이스 수준 보안을 관리할 수 있습니다. 해당 명령에 사용 가능한 매개 변수만 다릅니다. 자세한 내용은 Transact-SQL 참조(Transact-SQL)를 참조하세요.

master 데이터베이스에 연결하여 서버 수준 보안 주체 로그인으로 로그인을 관리합니다. CREATE LOGIN, ALTER LOGIN 또는 DROP LOGIN 문을 사용할 수 있습니다. 다음 예에서는 login1이라는 로그인을 만듭니다.

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
note참고
���그인을 만들 때 강력한 암호를 사용해야 합니다. 자세한 내용은 강력한 암호를 참조하십시오.

만든 로그인을 사용하여 Microsoft Azure SQL 데이터베이스에 연결하려면 먼저 CREATE USER 명령을 사용하여 각 로그인에 데이터베이스 수준 권한을 부여해야 합니다. 자세한 내용은 로그인에 데이터베이스 수준 권한 부여를 참조하십시오.

일부 도구는 TDS(Tabular Data Stream)를 다르게 구현하기 때문에 <login>@<server> 표기법을 사용하여 연결 문자열의 로그인에 Azure SQL 데이터베이스 서버 이름을 추가해야 할 수도 있습니다. 이 경우 로그인과 Azure SQL 데이터베이스 서버 이름을 @ 기호로 구분합니다. 예를 들어, 로그인 이름이 login1이고 Azure SQL 데이터베이스 서버의 정규화된 이름이 servername.database.windows.net인 경우 연결 문자열의 username 매개 변수는 다음과 같습니다. login1@servername. 이에 따라 로그인 이름에 사용할 수 있는 텍스트가 제한됩니다. 자세한 내용은 CREATE LOGIN(Transact-SQL)을 참조하세요.

서버 수준 보안 주체가 아닌 다른 로그인이 서버 수준 보안을 관리할 수 있도록 Microsoft Azure SQL 데이터베이스에서는 로그인을 만들 수 있는 loginmanager와 데이터베이스를 만들 수 있는 dbmanager라는 두 가지 보안 역할을 제공합니다. master 데이터베이스의 사용자만 이러한 데이터베이스 역할에 추가할 수 있습니다.

note참고
로그인이나 데이터베이스를 만들려면 master의 논리적 표현인 master 데이터베이스에 연결해야 합니다.

내부 SQL Server 인스턴스에 대한 securityadmin 고정 서버 역할과 마찬가지로 Microsoft Azure SQL 데이터베이스의 loginmanager 데이터베이스 역할에도 로그인을 만들 수 있는 권한이 있습니다. 프로비전 프로세스에서 생성된 서버 수준 보안 주체 로그인이나 loginmanager 데이터베이스 역할의 멤버만 새 로그인을 만들 수 있습니다.

Microsoft Azure SQL 데이터베이스 dbmanager 데이터베이스 역할은 내부 SQL Server 인스턴스에 대한 dbcreator 고정 서버 역할과 유사합니다. 프로비전 프로세스에서 생성된 서버 수준 보안 주체 로그인이나 dbmanager 데이터베이스 역할의 멤버만 데이터베이스를 만들 수 있습니다. dbmanager 데이터베이스 역할의 멤버인 사용자는 Azure SQL 데이터베이스 CREATE DATABASE 명령을 사용하여 데이터베이스를 만들 수 있지만 master 데이터베이스 내에서 명령을 실행해야 합니다. 자세한 내용은 CREATE DATABASE(Transact-SQL)를 참조하세요.

데이터베이스나 다른 로그인을 만들 수 있는 로그인 및 연결된 사용자를 만들려면 다음 단계를 수행하십시오.

  1. 프로비전 프로세스에서 생성된 서버 수준 보안 주체 로그인의 자격 증명 또는 loginmanager 데이터베이스 역할의 기존 멤버의 자격 증명을 사용하여 master 데이터베이스에 연결합니다.

  2. CREATE LOGIN 명령을 사용하여 로그인을 만듭니다. 자세한 내용은 CREATE LOGIN(Transact-SQL)을 참조하세요.

  3. CREATE USER 명령을 사용하여 master 데이터베이스에 이 로그인에 대한 새 사용자를 만듭니다. 자세한 내용은 CREATE USER(Transact-SQL)를 참조하세요.

  4. sp_addrolememeber 저장 프로시저를 사용하여 dbmanager 데이터베이스 역할, loginmanager 데이터베이스 역할 또는 둘 다에 새 사용자를 추가합니다.

다음 코드 예제에서는 master 데이터베이스에 연결한 상태에서 데이터베이스나 다른 로그인을 만들 수 있는 login1이라는 로그인과 login1User라는 해당 데이터베이스 사용자를 만드는 방법을 보여 줍니다.

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE USER login1User FROM LOGIN login1;
EXEC sp_addrolemember 'dbmanager', 'login1User';
EXEC sp_addrolemember 'loginmanager', 'login1User';
note참고
���그인을 만들 때 강력한 암호를 사용해야 합니다. 자세한 내용은 강력한 암호를 참조하십시오.

master 데이터베이스에서 모든 로그인을 만들어야 합니다. 로그인을 만든 후 해당 로그인에 대해 다른 데이터베이스에 사용자 계정을 만들 수 있습니다. 또한 Microsoft Azure SQL 데이터베이스는 내부 SQL Server 인스턴스와 동일한 방식으로 데이터베이스 역할을 지원합니다.

로그인이나 데이터베이스를 만들지 않은 경우 다른 데이터베이스에 사용자 계정을 만들려면 다음 단계를 수행합니다.

  1. loginmanagerdbmanager 역할의 로그인을 사용하여 master 데이터베이스에 연결합니다.

  2. CREATE LOGIN 명령을 사용하여 새 로그인을 만듭니다. 자세한 내용은 CREATE LOGIN(Transact-SQL)을 참조하세요. Windows 인증은 지원되지 않습니다.

  3. CREATE DATABASE 명령을 사용하여 새 데이터베이스를 만듭니다. 자세한 내용은 CREATE DATABASE(Transact-SQL)를 참조하세요.

  4. 데이터베이스를 만든 로그인으로 새 데이터베이스에 연결합니다.

  5. CREATE USER 명령을 사용하여 새 데이터베이스에 새 사용자를 만듭니다. 자세한 내용은 CREATE USER(Transact-SQL)를 참조하세요.

다음 코드 예제에서는 login1이라는 로그인과 database1이라는 데이터베이스를 만드는 방법을 보여 줍니다.

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE DATABASE database1;
note참고
���그인을 만들 때 강력한 암호를 사용해야 합니다. 자세한 내용은 강력한 암호를 참조하십시오.

다음 예에서는 login1User 데이터베이스에서 database1 로그인에 해당하는 login1라는 데이터베이스 사용자를 만드는 방법을 보여줍니다.

-- Establish a new connection to the database1 database
CREATE USER login1User FROM LOGIN login1;

Microsoft Azure SQL 데이터베이스의 이 데이터베이스 수준 권한 모델은 내부 SQL Server 인스턴스와 동일합니다. 자세한 내용은 SQL Server 온라인 설명서 참조의 다음 항목을 참조하십시오.

ID 및 액세스 제어(데이터베이스 엔진)

로그인, 사용자 및 스키마 관리 방법 도움말 항목

2단원: 데이터베이스 개체에 대한 사용 권한 구성

note참고
Transact-SQL의 보안 관련 Microsoft Azure SQL 데이터베이스 문은 사용 가능한 매개 변수가 약간 다를 수 있습니다. 자세한 내용은 Azure SQL 데이터베이스 Transact-SQL 참조를 참조하세요.

Azure SQL 데이터베이스 서버의 로그인과 데이터베이스를 보려면 master 데이터베이스의 sys.sql_logins 뷰와 sys.databases 뷰를 사용합니다. 다음 예에서는 Azure SQL 데이터베이스 서버의 모든 로그인과 데이터베이스 목록을 표시하는 방법을 보여줍니다.

-- first, connect to the master database
SELECT * FROM sys.sql_logins;
SELECT * FROM sys.databases; 

참고 항목

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft