ADO 구성 요소를 통해 원격 SQL Server에 연결하는 Delphi 응용 프로그램이 있습니다.다른 응용 프로그램이 SQL Server에 연결하는 것을 어떻게 방지합니까?
어떻게 허용합니까 내 응용 프로그램이 SQL Server 2012에 액세스하고 연결을 시도하는 다른 응용 프로그램에 액세스하지 못하게해야합니까?
ADO 구성 요소를 통해 원격 SQL Server에 연결하는 Delphi 응용 프로그램이 있습니다.다른 응용 프로그램이 SQL Server에 연결하는 것을 어떻게 방지합니까?
어떻게 허용합니까 내 응용 프로그램이 SQL Server 2012에 액세스하고 연결을 시도하는 다른 응용 프로그램에 액세스하지 못하게해야합니까?
Logon trigger을 사용해야하며이 트리거에서 APP_NAME()
과 응용 프로그램 이름이 들어있는 상수를 비교해야합니다. 서로 다르면 ROLLBACK
을 수행하십시오.
Application Role SQL Server를 사용할 수 있습니다.
Logon Trigger로 전체 SQL Server를 잠그는 것은 의미가 없습니다. 다른 데이터베이스가있을 수 있으며 또한 예를 들어 무료 여야합니다. SQL 에이전트 또는 Management Studio 또는 업데이트 프로그램 용 ...
데이터베이스에 대한 액세스를 제어하려면 사용자 및 응용 프로그램 역할을 사용하십시오. 앱 별 역할은 컴파일 된 코드에서 하나의 저장 프로 시저를 호출해야하며 수행 할 수있는 모든 작업이 응용 프로그램 역할에 의해 정의됩니다. 다른 역할 및 사용자에 대한 액세스를 비활성화하면 아무도 사용자의 데이터베이스에 액세스 할 수 없습니다. 다른 사용자/역할에 권한을 부여하지 않도록 다른 데이터베이스를 구성 할 수도 있습니다.
연결 문자열에는 문제가없고 다른 작업에는 유연합니다.
영어로 죄송합니다. 제 모국어가 아닙니다.
문제는 SQL Server에 연결하는 모든 것이 ConnectionString에 의해 수행된다는 것입니다.
정말로 원하는 경우,이를 가로 채서 다른 응용 프로그램으로 위장 할 수 있습니다.
응용 프로그램이 어떤 방식 으로든 디지털 서명을 사용하여 연결할 수 없으면 원하는 것을 시행 할 방법이 없습니다.
본 요약서에 동의합니다. 누군가가 연결 문자열을 생성하고 유효한 인증 자격 증명을 전달할 수있는 한 모든 응용 프로그램은 SQL Server 데이터베이스에 액세스 할 수있을뿐 아니라 제공된 사용자 ID가 일반적으로 얻게되는 모든 역할과 부여 된 사용 권한을 얻을 수 있습니다. – EastOfJupiter
어떻게 APP_NAME을 SQL 서버에 전달합니까? – kobik
[APP] (http://msdn.microsoft.com/en-us/library/ms130822.aspx) 연결 매개 변수를 참조하십시오. –
감사합니다. +1. 그게 내가 생각한거야. 나는 여전히 연결 문자열이 있으면 다른 응용 프로그램에서 사용할 수 있기 때문에 이것은 다소 의미가 없다고 생각한다. – kobik