2단원: 데이터베이스 개체에 대한 사용 권한 구성
적용 대상: Microsoft Fabric의 SQL Server Azure SQL Database Azure SQL Managed Instance Analytics Platform System(PDW) SQL 데이터베이스
참고 항목
Transact-SQL로 쿼리 시작하기 학습 경로는 실제 예제와 함께 보다 심층적인 콘텐츠를 제공합니다.
데이터베이스에 대한 액세스 권한을 사용자에게 부여하는 작업은 3개의 단계로 구성됩니다. 먼저 로그인을 만듭니다. 로그인을 사용하여 사용자는 SQL Server 데이터베이스 엔진에 연결할 수 있습니다. 그런 다음 지정된 데이터베이스에서 로그인을 사용자로 구성합니다. 마지막으로 데이터베이스 개체에 대한 사용 권한을 사용자에게 부여합니다. 이 단원에서는 이러한 3개의 단계와 뷰 및 저장 프로시저를 개체로 만드는 방법을 보여 줍니다.
참고
이 단원에서는 1 단원 - 데이터베이스 개체 만들기에서 만든 개체를 사용합니다. 2단원을 계속하기 전에 1단원을 완료합니다.
전제 조건
이 자습서를 완료하려면 SQL Server Management Studio 및 SQL Server 인스턴스에 대한 액세스 권한이 필요합니다.
- SQL Server Management Studio를 설치합니다.
SQL Server 인스턴스에 대한 액세스 권한이 없는 경우 다음 링크에서 플랫폼을 선택합니다. SQL 인증을 선택한 경우 SQL Server 로그인 자격 증명을 사용합니다.
- Windows: SQL Server 2022 Developer Edition 다운로드
- Linux: 컨테이너에서 SQL Server 2022를 다운로드합니다.
여러분의 의견을 환영합니다. 이 문서에서 단계, 코드 예제 등에 오래되거나 잘못된 부분이 있으면 알려주세요. 이 페이지 아래쪽의 피드백 섹션에서 이 페이지 단추를 클릭할 수 있습니다. 일반적으로 다음날 SQL에 대한 모든 피드백 항목을 읽습니다. 감사합니다.
로그인을 만듭니다.
데이터베이스 엔진에 액세스하려면 사용자는 로그인이 필요합니다. 로그인은 사용자의 ID를 Windows 계정 또는 Windows 그룹의 멤버로 나타내거나 SQL Server 에만 존재하는 SQL Server로그인이 될 수 있습니다. 가능하면 Windows 인증을 사용해야 합니다.
기본적으로 컴퓨터의 관리자는 SQL Server에 대한 모든 액세스 권한을 가집니다. 따라서 낮은 권한의 사용자가 필요할 것이므로 컴퓨터에서 새로운 로컬 Windows 인증 계정을 만듭니다. 이 작업을 수행하려면 컴퓨터의 관리자여야 합니다. 그런 다음 새 사용자에게 SQL Server에 대한 액세스 권한을 부여합니다.
새 Windows 계정 만들기
- 시작, 실행을 선택하고 열기 상자에
%SystemRoot%\system32\compmgmt.msc /s
를 입력한 다음 확인을 선택하여 컴퓨터 관리 프로그램을 엽니다. - 시스템 도구에서 로컬 사용자 및 그룹을 확장하고 사용자를 마우스 오른쪽 단추로 클릭한 다음 새 사용자를 선택합니다.
- 사용자 이름 상자에 Mary를 입력합니다.
- 암호 및 암호 확인 상자에 강력한 암호를 입력한 다음 만들기를 선택하여 새 로컬 Windows 사용자를 만듭니다.
SQL 로그인 만들기
SQL Server Management Studio의 쿼리 편집기 창에서 computer_name
을 컴퓨터 이름으로 바꾸어서 다음 코드를 입력하고 실행합니다. FROM WINDOWS
는 Windows에서 사용자를 인증한다는 것을 나타냅니다. 선택적 DEFAULT_DATABASE
인수는 연결 문자열 다른 데이터베이스를 나타내지 않는 한 데이터베이스에 연결 Mary
TestData
됩니다. 이 문에서는 Transact-SQL 문을 종료하기 위한 선택적 문자로 세미콜론이 사용됩니다.
CREATE LOGIN [computer_name\Mary]
FROM WINDOWS
WITH DEFAULT_DATABASE = [TestData];
GO
이 코드는 컴퓨터가 인증하는 사용자 이름 Mary
에게 이 SQL Server인스턴스에 액세스할 수 있는 권한을 부여합니다. 컴퓨터에 둘 이상의 SQL Server 인스턴스가 있을 경우 Mary
가 액세스해야 하는 각 인스턴스에서 로그인을 만들어야 합니다.
참고
Mary
가 도메인 계정이 아니므로 이 사용자 이름은 이 컴퓨터에서만 인증될 수 있습니다.
데이터베이스에 액세스 권한 부여
Mary
이제 계정에 이 SQL Server 인스턴스에 대한 액세스 권한이 있지만 데이터베이스에 액세스할 수 있는 권한이 없습니다. 계정에 데이터베이스 사용자로 권한을 부여하기 전까지는 기본 데이터베이스 TestData
에 액세스할 수 없습니다.
액세스 권한을 부여 Mary
하려면 데이터베이스로 TestData
전환한 다음 CREATE USER 문을 사용하여 로그인을 명명 Mary
된 사용자에게 매핑합니다.
데이터베이스에서 사용자 만들기
다음 문을 입력하고 실행하여( computer_name
을 컴퓨터의 이름으로 바꿈) Mary
데이터베이스에 대한 액세스 권한을 TestData
에게 부여합니다.
USE [TestData];
GO
CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO
이제 Mary는 SQL Server 및 TestData
데이터베이스에 대한 액세스 권한을 가집니다.
보기 및 저장 프로시저 만들기
관리자는 Products
테이블 및 vw_Names
뷰에서 SELECT를 실행하고 pr_Names
프로시저를 실행할 수 있지만 Mary는 이러한 작업을 수행할 수 없습니다. Mary에게 필요한 사용 권한을 부여하려면 GRANT 문을 사용합니다.
저장 프로시저에 사용 권한 부여
다음 문을 실행하여 Mary
저장 프로시저에 대한 EXECUTE
권한을 pr_Names
에게 제공합니다.
GRANT EXECUTE ON pr_Names TO Mary;
GO
이 시나리오에서 Mary는 이 저장 프로시저를 사용하여 Products
테이블에만 액세스할 수 있습니다. Mary가 SELECT 문을 뷰에 대해 실행할 수 있도록 하려면 또한 GRANT SELECT ON vw_Names TO Mary
를 실행해야 합니다. 데이터베이스 개체에 대한 액세스 권한을 제거하려면 REVOKE 문을 사용합니다.
참고
테이블, 뷰 및 저장 프로시저를 동일한 스키마에서 소유하지 않을 경우 사용 권한을 부여하는 것은 더 복잡해집니다.
GRANT 정보
저장 프로시저를 실행하려면 EXECUTE 권한이 있어야 합니다. 데이터를 액세스 및 변경하려면 SELECT, INSERT, UPDATE 및 DELETE 권한이 있어야 합니다. 또한 GRANT 문은 테이블 작성 권한과 같은 다른 사용 권한에도 사용됩니다.
다음 단계
다음 아티클에서는 다른 단원에서 만든 데이터베이스 개체를 제거하는 방법을 설명합니다.
자세히 알아보려면 다음 문서로 이동합니다.