Microsoft SQL Server 데이터베이스와 사용자 집합이 있습니다. 이제 내 응용 프로그램에서 사용자가 특정 권한 (admin)을 사용하여 사용자 이름과 암호를 입력 한 경우에만 표시되는 일부 기능을 만들고 싶습니다. 데이터베이스와 사용자 이름 및 해당 권한이 변경 될 수 있으므로 Microsoft SQL Server 사용자가 가진 사용 권한/권한을 어떻게 확인할 수 있습니까?Microsoft SQL Server : 사용자의 사용 권한을 확인하십시오.
답변
보안성에 대한 모든 권한을 반환하는 [sys.fn_mypermissions][1]
을 사용하여 특정 보안 대상에 대한 현재 사용자의 권한을 확인할 수 있습니다. HAS_PERMS_BY_NAME
으로 특정 권한을 확인할 수도 있습니다. 예 :
SELECT HAS_PERMS_BY_NAME(null, null, 'CONTROL SERVER');
고마워, 그거야. 이제 사용자가 특정 데이터베이스에 대한 삽입 권한이 있는지를 확인할 수 있습니다. SELECT HAS_PERMS_BY_NAME ('databasename', 'DATABASE', 'INSERT')는 Expr1입니다. 또한 포함 된 문서 링크에 따라 다른 권한을 확인하십시오. –
나는,
나는 당신이 관련 응용 프로그램 사용자를 추가 할 수있는 SQL Server 데이터베이스 역할을 만들 것을 제안 ..... 내가 그러나 내가 할 가정 문제의 정의를 이해하는 것이 완전히 확실하지 않다 아마도 App (또는 Windows 도메인 그룹) 내에서 유지 관리되는 일부 그룹 회원을 통해. 역할 매핑을 통해 그룹을 사용하여 관련 권한을 관리하는 것에서 역할을 통해 데이터베이스 내 보안 개체에 이르기까지 사용자 구성원을 독립적으로 관리 할 수 있습니다.
이렇게하면 SQL Server의 보안 구성을 쿼리하지 않고도 응용 프로그램 사용자가 관련 응용 프로그램 또는 Windows 그룹의 구성원인지 확인할 수 있습니다.
디자인 관점에서 필자는 왜 권한을 "확인"해야하는지 아직 알지 못합니다. 사용 권한은 사용자 인증을받은 해당 역할에 대한 구성원 자격을 통해 부여됩니다. 필요한 "admin"권한과 필요한 사용자 권한이있는 역할을 가진 역할을 작성하기 만하면됩니다. 그런 다음 관련 역할에 사용자를 추가/매핑하십시오. 그런 다음 사용자가 올바른 자격 증명으로 로그인 할 수 있다는 사실이이 용도로 사용되므로 권한을 확인/유효성 검사 할 필요가 없습니다. –
IS_MEMBER 기능을 사용하고이 작업을 수행하는 가장 간단한 방법은, 사용자가 역할/그룹의 db_owner에 어떠했는지 확인 : 당신은 로그인 한 관리자를 의미 CONTROL SERVER
허가를 확인할 수 있습니다. 이 함수는 데이터베이스 수준에서 검사를 수행합니다. 서버 수준에서 확인해야하는 경우 IS_SRVROLEMEMBER 함수를 사용할 수 있습니다. SQL Server 2005 이후로 둘 다 사용할 수 있습니다.
- 1. Microsoft SQL Server 2005 - 모듈러스 연산자 사용
- 2. Microsoft SQL Server 페이징
- 3. C# 응용 프로그램이 필요한 사용 권한을 확인하십시오.
- 4. 원격 SQL Server 사용?
- 5. Microsoft SQL Server 활동 추적
- 6. Microsoft SQL Server 바인딩이 있습니까?
- 7. Microsoft Mdac with SQL Server
- 8. SQL Server 2005 Express에서 로그인, 사용자 및 사용 권한을 사용합니다.
- 9. SQL Server 2008에서 information_schema.columns에 대한 사용 권한을 부여합니다.
- 10. Silverlight 응용 프로그램에서 SQL Server 사용 권한을 설정할 수 있습니까?
- 11. DB2에서 Windows 관리자 사용자의 사용 권한을 취소하는 방법은 무엇입니까?
- 12. Microsoft Sync Framework 2.1을 SQL Server 2000 용으로 사용
- 13. Microsoft SQL Server 기본 클라이언트가 IDBAsynchNotify를 지원합니까?
- 14. SQL Server UPDATE에서 & 사용
- 15. tsql은 가장없이 사용자의 권한을 얻습니다.
- 16. "[Microsoft] [ODBC SQL Server 드라이버] [SQL Server]"Microsoft "근처에 잘못된 구문이 나타납니다.
- 17. SQL Server 데이터베이스가 복원 된 경우 확인하십시오
- 18. 코드에서 SQL Server Agent가 실행되고 있는지 확인하십시오.
- 19. 쉽게 테이블을 조인하는 방법 Microsoft SQL Server?
- 20. Microsoft SQL Server 전자 메일 유효성 검사
- 21. DTS를 지원하는 Microsoft SQL Server 호스팅
- 22. Microsoft SQL Server 인스턴스의 운영 체제 정보
- 23. SQL Server 2005에서 Microsoft 여러 범위 동기화
- 24. Microsoft SQL Server 2005 시간 데이터 형식
- 25. Microsoft SQL Server 2005 bigint를 문자열로 캐스팅
- 26. Microsoft SQL Server 2008 웹 에디션 구입
- 27. Microsoft SQL Server 2008 R2 Standard Edition
- 28. Microsoft SQL Server 2000 DTS as text
- 29. 요청 : Microsoft SQL Server JDBC 드라이버 1.1
- 30. Asp.net - Microsoft SQL Server 나가는 연결
사용자 이름/암호에 따라 어떤 종류의 기능을 볼 수 있습니까? 데이터베이스에 사용자 이름과 암호를 저장합니까, 아니면 SQL Server 보안 폴더 아래에 사용자 이름/암호라는 의미입니까? 사용자 자신의 보안 레벨이나 사용자 테이블의 플래그 (사용자 {사용자 이름, 비밀번호, isAdmin})를 구현 한 다음 앱에 로그인하면 관리자인지 확인할 수 있습니다. 그렇다면 여분의 기능은 그렇지 않다면 숨 깁니다. 또한 다양한 액세스 수준이있는 경우 별도의 테이블을 사용하는 것이 좋습니다 – Prescott
아니요 추가 기능이 없습니다. 간단히 말하면. n 개의 사용자 그룹이 있다고 가정 해보십시오. 처음에는 서버에 쿼리 만 할 수 있습니다. 두 번째는 삽입 문을 쿼리하고 수행 할 수 있습니다. 세 번째 뷰는 뷰를 생성 할 수도 있습니다. 나는 실제로 현재 사용자가 데이터베이스에서 무엇을 할 수 있는지 알고 싶다. –
Btw. 그룹에 집착하지 마라. 그들은 그룹으로 조직 될 필요가 없습니다. 다른 권한을 가진 여러 사용자. 난 그냥 응용 프로그램에서 현재 dbuser는 데이터베이스에 필요한 권한이 없기 때문에 사용할 수없는 기능을 비활성화하려고합니다. –