Power BI Desktop에 대해 RLS(행 수준 보안)를 사용하여 데이터 액세스 제한Restrict data access with row-level security (RLS) for Power BI Desktop

Power BI Desktop에서 RLS(행 수준 보안)를 사용하여 지정된 사용자의 데이터 액세스를 제한할 수 있습니다.You can use row-level security (RLS) with Power BI Desktop to restrict data access for given users. 행 수준에서 데이터 제한을 필터링합니다.Filters restrict data at the row level. 역할 내에서 필터를 정의할 수 있습니다.You can define filters within roles.

이제 Power BI Desktop으로 Power BI로 가져온 데이터 모델에 대한 RLS를 구성할 수 있습니다.You can now configure RLS for data models imported into Power BI with Power BI Desktop. SQL Server와 같은 DirectQuery를 사용하는 데이터 세트에서 RLS를 구성할 수도 있습니다.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. 이전에는 Power BI 외부의 온-프레미스 Analysis Services 모델 내에서만 RLS를 구현할 수 있었습니다.Previously, you were only able to implement RLS within on-premises Analysis Services models outside Power BI. Analysis Services 라이브 연결의 경우 온-프레미스 모델에서 행 수준 보안을 구성합니다.For Analysis Services live connections, you configure Row-level security on the on-premises model. 라이브 연결 데이터 세트에는 보안 옵션이 표시되지 않습니다.The security option doesn't show up for live connection datasets.

중요

Power BI 서비스 내에서 역할과 규칙을 정의한 경우 Power BI Desktop 내에서 해당 역할을 다시 만든 다음, 보고서를 서비스에 게시해야 합니다.If you defined roles and rules within the Power BI service, you need to recreate those roles within Power BI Desktop and publish the report to the service. Power BI 서비스 내에서 RLS 옵션에 대해 자세히 알아보세요.Learn more about options for RLS within the Power BI service.

Power BI Desktop의 역할 및 규칙 정의Define roles and rules in Power BI Desktop

Power BI Desktop 내에서 역할 및 규칙을 정의할 수 있습니다.You can define roles and rules within Power BI Desktop. Power BI에 게시할 때 역할 정의도 게시됩니다.When you publish to Power BI, it also publishes the role definitions.

보안 역할을 정의하려면 다음 단계를 수행합니다.To define security roles, follow these steps.

  1. Power BI Desktop 보고서에 데이터를 가져오거나 DirectQuery 연결을 구성합니다.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    참고

    Analysis Services 라이브 연결을 위해 Power BI Desktop 내에서 역할을 정의할 수 없습니다.You can't define roles within Power BI Desktop for Analysis Services live connections. Analysis Services 모델 내에서 이를 수행해야 합니다.You need to do that within the Analysis Services model.

  2. 모델링 탭에서 역할 관리를 선택합니다.From the Modeling tab, select Manage Roles.

    역할 관리 선택

  3. 역할 관리 창에서 만들기를 선택합니다.From the Manage roles window, select Create.

    만들기 선택

  4. 역할에서 역할 이름을 입력합니다.Under Roles, provide a name for the role.

  5. 테이블에서 DAX 규칙을 적용할 테이블을 선택합니다.Under Tables, select the table to which you want to apply a DAX rule.

  6. 테이블 필터 DAX 식 상자에 DAX 식을 입력합니다.In the Table filter DAX expression box, enter the DAX expressions. 이 식은 true 또는 false 값을 반환합니다.This expression returns a value of true or false. 예: [Entity ID] = “Value”.For example: [Entity ID] = “Value”.

    역할 관리 창

    참고

    이 식에 username() 을 사용할 수 있습니다.You can use username() within this expression. username() 은 Power BI Desktop 내에서 도메인\사용자 이름의 형식을 취합니다.Be aware that username() has the format of DOMAIN\username within Power BI Desktop. Power BI 서비스 및 Power BI Report Server 내에서 사용자의 UPN(사용자 계정 이름) 형식입니다.Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). 또는 항상 사용자 계정 이름 형식(username@contoso.com)으로 사용자를 반환하는 userprincipalname() 을 사용할 수 있습니다.Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, username@contoso.com.

  7. DAX 식을 만든 후 식의 유효성을 검사하기 위해 식 상자 위에 확인 표시를 선택합니다.After you've created the DAX expression, select the checkmark above the expression box to validate the expression.

    DAX 식 유효성 검사

    참고

    이 식 상자에서는 보통 세미콜론 구분자를 사용하는 로캘(예: 프랑스, 독일)에서도 쉼표를 사용하여 DAX 함수 인수를 구분합니다.In this expression box, you use commas to separate DAX function arguments even if you're using a locale that normally uses semicolon separators (e.g. French or German).

  8. 저장을 선택합니다.Select Save.

Power BI Desktop 내에서는 사용자를 역할에 할당할 수 없습니다.You can't assign users to a role within Power BI Desktop. Power BI 서비스에서 할당합니다.You assign them in the Power BI service. username() 또는 userprincipalname() DAX 함수를 사용하고 적절한 관계를 구성하여 Power BI Desktop 내에서 동적 보안을 사용할 수 있습니다.You can enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions and having the proper relationships configured.

Power BI Desktop 내에서 역할 유효성 검사Validate the roles within Power BI Desktop

역할을 만든 후에 Power BI Desktop 내에서 역할의 결과를 테스트합니다.After you've created your roles, test the results of the roles within Power BI Desktop.

  1. 모델링 탭에서 역할로 보기를 선택합니다.From the Modeling tab, select View as Roles.

    역할로 보기 선택

    역할로 보기 창이 표시되고, 여기서 직접 만든 역할을 볼 수 있습니다.The View as roles window appears, where you see the roles you've created.

    역할로 보기 창

  2. 만든 역할을 선택한 다음, 확인을 선택하여 해당 역할을 적용합니다.Select a role you created, and then select OK to apply that role.

    보고서는 해당 역할과 관련된 데이터를 렌더링합니다.The report renders the data relevant for that role.

  3. 또한 다른 사용자를 선택하고 지정된 사용자를 제공할 수 있습니다.You can also select Other user and supply a given user.

    다른 사용자 선택

    Power BI 서비스 및 Power BI Report Server가 사용하는 UPN(사용자 계정 이름)을 제공하는 것이 가장 좋습니다.It's best to supply the User Principal Name (UPN) as that's what the Power BI service and Power BI Report Server use.

    Power BI Desktop 내에서 다른 사용자는 DAX 식을 기반으로 하는 동적 보안을 사용하는 경우에만 다른 결과가 표시됩니다.Within Power BI Desktop, Other user displays different results only if you're using dynamic security based on your DAX expressions.

  4. 확인을 선택합니다.Select OK.

    해당 사용자가 볼 수 있는 내용에 따라 보고서가 렌더링됩니다.The report renders based on what that user can see.

제한 사항Limitations

클라우드 모델의 행 수준 보안에 대한 현재 제한 사항은 다음과 같습니다.The current limitations for row-level security on cloud models are as follows:

  • 이전에 Power BI 서비스에 역할 및 규칙을 정의한 경우 Power BI Desktop에서 이를 다시 생성해야 합니다.If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI Desktop.

  • Power BI Desktop으로 생성된 데이터 세트에서만 RLS를 정의할 수 있습니다.You can define RLS only on the datasets created with Power BI Desktop. Excel로 만든 데이터 세트에 RLS를 사용하려는 경우 먼저 파일을 Power BI Desktop(PBIX) 파일로 변환해야 합니다.If you want to enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. 자세히 알아보기.Learn more.

  • 가져오기 및 DirectQuery 연결만 지원됩니다.Only Import and DirectQuery connections are supported. Analysis Services에 대한 라이브 연결은 온-프레미스 모델에서 처리됩니다.Live connections to Analysis Services are handled in the on-premises model.

알려진 문제Known issues

Power BI Desktop에서 이전에 게시된 보고서를 게시하려고 하면 오류 메시지가 표시되는 알려진 문제가 있습니다.There's a known issue where you'll get an error message if you try to publish a previously published report from Power BI Desktop. 시나리오는 다음과 같습니다.The scenario is as follows:

  1. Anna에게는 Power BI 서비스에 게시된 데이터 세트와 구성된 RLS가 있습니다.Anna has a dataset that is published to the Power BI service and has configured RLS.

  2. Anna는 Power BI Desktop에서 보고서를 업데이트하고 다시 게시합니다.Anna updates the report in Power BI Desktop and republishes.

  3. Anna는 오류를 받습니다.Anna receives an error.

해결 방법: 이 문제가 해결될 때까지 Power BI 서비스에서 Power BI Desktop 파일을 다시 게시합니다.Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. 데이터 가져오기 > 파일을 선택하여 이를 수행할 수 있습니다.You can do that by selecting Get Data > Files.

FAQFAQ

질문: 이전에 Power BI 서비스에서 데이터 세트에 대한 역할과 규칙을 만든 경우 어떻게 되나요?Question: What if I had previously created roles and rules for a dataset in the Power BI service? 아무 작업도 수행하지 않아도 계속 작동합니까?Will they still work if I do nothing?
답변: 아니요, 시각적 개체가 제대로 렌더링되지 않습니다.Answer: No, visuals will not render properly. Power BI Desktop 내 역할 및 규칙을 다시 만든 다음, Power BI 서비스에 게시해야 합니다.You will have to re-create the roles and rules within Power BI Desktop and then publish to the Power BI service.

질문: Analysis Services 데이터 원본에 대해 이러한 역할을 만들 수 있나요?Question: Can I create these roles for Analysis Services data sources?
답변: 데이터를 Power BI Desktop으로 가져온 경우 사용할 수 있습니다.Answer: You can if you imported the data into Power BI Desktop. 라이브 연결을 사용하는 경우 Power BI 서비스 내에서 RLS를 구성할 수 없습니다.If you are using a live connection, you will not be able to configure RLS within the Power BI service. 이것은 Analysis Services 모델 온-프레미스 내에서 정의됩니다.This is defined within the Analysis Services model on-premises.

질문: RLS를 사용하여 내 사용자가 액세스할 수 있는 열이나 측정값을 제한할 수 있나요?Question: Can I use RLS to limit the columns or measures accessible by my users?
답변: 아니요, 사용자가 특정 데이터 행에 대한 액세스 권한이 있는 경우 해당 행의 모든 데이터 열을 볼 수 있습니다.Answer: No, if a user has access to a particular row of data, they can see all the columns of data for that row.

질문: RLS를 사용하면 자세한 데이터를 숨기고 시각적 개체에서 요약된 데이터에 대한 액세스 권한을 부여할 수 있나요?Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
답변: 아니요, 데이터 개별 행의 보안을 유지할 수 있지만 사용자는 요약된 데이터 또는 세부 정보를 확인할 수 있습니다.Answer: No, you secure individual rows of data but users can always see either the details or the summarized data.

질문: 내 데이터 원본에 이미 보안 역할이 정의되어 있습니다(예: SQL Server 역할 또는 SAP BW 역할).Question: My data source already has security roles defined (for example SQL Server roles or SAP BW roles). 이러한 역할과 RLS 사이에는 어떤 관계가 있나요?What is the relationship between these and RLS?
답변: 데이터를 가져오는지 아니면 DirectQuery를 사용하는지에 따라 달라집니다.Answer: The answer depends on whether you're importing data or using DirectQuery. Power BI 데이터 세트로 데이터를 가져오는 경우에는 데이터 원본의 보안 역할이 사용되지 않습니다.If you're importing data into your Power BI dataset, the security roles in your data source aren't used. 이 경우 RLS를 정의하여 Power BI에서 연결하는 사용자를 위한 보안 규칙을 적용해야 합니다.In this case, you should define RLS to enforce security rules for users who connect in Power BI. DirectQuery를 사용하는 경우에는 데이터 원본의 보안 역할이 사용됩니다.If you're using DirectQuery, the security roles in your data source are used. 사용자가 보고서를 열면 Power BI가 기본 데이터 원본으로 쿼리를 전송하고, 해당 데이터 원본은 사용자의 자격 증명에 따라 데이터에 보안 규칙을 적용합니다.When a user opens a report Power BI sends a query to the underlying data source, which applies security rules to the data based on the user's credentials.

다음 단계Next steps

이 문서와 관련된 보다 자세한 내용을 알아보려면 다음 리소스를 참조하세요.For more information related to this article, check out the following resources: