많은 데이터를 보유하고있는 SQL Server가 있습니다. 다른 여러 클라이언트에서 실행되는 응용 프로그램은 모두이 서버에 액세스하여 처리 할 다양한 데이터를 가져옵니다. 이 프로그램의 이전 버전은 데이터베이스에있는 모든 데이터에 대해 프로그램을 가진 사람에게 거의 무제한 액세스 권한을 부여했습니다. 이제이 응용 프로그램의 새 버전을 만들고 사용자 이름으로 로그인하고 사용자 수준이 다르다는 점을 고려하여 사용자가 액세스/변경할 수있는 내용을 제한하는 등의 멋진 작업을 구현하려고합니다.사용자별로 데이터베이스 액세스를 제한하려면 데이터베이스에서 처리하도록하거나 더 이상 별도의 프로그램을 만들어서 더 나은 액세스를 허용 하시겠습니까?
MS SQL 서버에 대한 지식은 제한적이지만 성장하고 있지만 데이터베이스 자체에서 누가 무엇에 액세스 할 수 있는지 제한하기 위해 여러 가지 일을 할 수 있다는 것을 알고 있습니다. 또 다른 옵션은 나가는 연결에서 데이터베이스를 닫고 소켓을 통해 들어오는 연결을 처리하고 사용자의 유효성을 검사하고 실제로 액세스 할 수 있는지 확인하는 로컬 DB 서버에서 응용 프로그램을 실행하는 것입니다. 나에게 이것은 더 간단한 생각처럼 보인다. 데이터베이스 사용자 한 명에 대해서만 걱정할 필요가 있으며, 다른 수준의 사용자가 액세스 할 수있는 테이블 (및 필요한 경우 열)을 엄격하게 제어 할 수 있습니다. 비록 내가 말했듯이, SQL 서버는 나의 전문 지식이 아니며, 데이터베이스 내부에서 수행하기가 매우 쉬운 일을 복잡하게 만들었는지, 아니면 생각지 않을만한 다른 문제를 스스로 열어 놓고 있는지 알고 싶다. ? 사용자가 많지 않습니다. 지금은 10 개 미만이며 성장할 것으로 예상되지 않으므로이 별개의 앱에서 실행되는 소켓이나 스레드가 너무 많아 걱정할 필요가 없습니다.
가장 큰 관심사는 데이터베이스에 사람들에 대한 중요한 개인 정보가 있다는 것입니다. 이것은 어떤 의미에서든 큰 회사는 아니지만 동시에 누군가가이 데이터를 보유하고 있다면 매우 나쁠 것입니다 (예 :이 데이터는 암호화 됨). 이전 응용 프로그램에서는 올바른 연결 문자열을 사용하여 원하는대로 가져올 수 있습니다. 그런 일이 발생하지는 않았지만 필요한 후에 더 강력한 보안을 구현 한 프로그래머 중 하나가되고 싶지 않습니다.
실수로 내 의견을 삭제 한 것 같습니다. 몇 가지 이유로 Windows 인증을 사용할 수 없습니다. – cost