SQL Server i "bezpieczne" przenoszenie bazy pomiędzy maszynami

0

Cześć,

mam taki o to problem jak najlepiej zabezpieczyć bazkę.

Warunki:

  1. Tylko użytkownik dla którego została stworzona baza ma do niej dostęp - nikt inny
  2. Jeśli przenosimy bazę pomiędzy maszynami to na innej maszynie tylko ten sam użytkownik będzie mógł mieć do niej dostęp
  3. Baza będzie na jednej maszynie jednocześnie
  4. Tylko właściciel bazy może stworzyć i odtworzyć backup
  5. Wszystko musi się odbywać z poziomu aplikacji .NET
  6. Jest jeden główny użytkownik a każdy inny ma dostęp tylko do swojej bazy

Myślałem tutaj o tym, że główny użytkownik tworzy bazkę i użytkownika "właściciela" do tej bazki. Następnie nadaje uprawnienia w taki sposób, żeby tylko on mógł ją zarządzać.

Jakieś sugestie ?

1

Problem ogólny, czy dotyczący konkretnego serwera (Microsoft, Oracle, MySql, PostgreSQL, może jeszcze inny)?

1
  1. Tylko użytkownik dla którego została stworzona baza ma do niej dostęp - nikt inny

Niemożliwe jeżeli zabronisz dostępy to sysadmin, czy securityadmin sobie go nada

  1. Jeśli przenosimy bazę pomiędzy maszynami to na innej maszynie tylko ten sam użytkownik będzie mógł mieć do niej dostęp

Jeżeli przenosisz bazę na inny serwer to serwer docelowy musi mieć takiego samego użytkownika z takim samym sid-em, inaczej się nie zaloguje, chyba że mowa o użytkownikach AD

  1. Baza będzie na jednej maszynie jednocześnie

Bez znaczenia

  1. Tylko właściciel bazy może stworzyć i odtworzyć backup

patrz ad.1

  1. Wszystko musi się odbywać z poziomu aplikacji .NET

Bez znaczenia dla problemu

  1. Jest jeden główny użytkownik a każdy inny ma dostęp tylko do swojej bazy

Uprawnienia jak najbardziej możesz nadawać dla poszczególnych użytkowników i przypisywać im role do bazy danych

0

@andrzejlisek: problem dotyczy tylko Sql Servera
@Panczo potwierdzasz w sumie to, o czym gadałem tutaj z ludzmi w robocie. Dzięki wielkie.

1

Teraz doczytałem o wymaganiu, że wszystko ma odbywać się z poziomu aplikacji .NET. Akurat w MS SQL jest coś takiego, jak rola aplikacyjna (application role). Dokładnie nie wiem, jak to się ustawia, żeby z niej korzystać, ale ZTCW, to sens roli aplikacyjnej jest taki, że na danych może pracować tylko dana aplikacja, nie da się danych podejrzeć ani zmienić za pomocą innej aplikacji, nawet na tym samym loginie. Jedyne, co ze swojej strony mogę zasugerować, to zgłębić temat "application role", na czym polega, jak ją założyć i korzystać w MS SQL i stwierdzić, czy to odpowiada Twoim potrzebom. Ja po prostu wiem, że coś takiego istnieje, mam mgliste pojęcie co to jest, więc nie pomogę w konfiguracji i użytkowaniu roli aplikacyjnej.

Co do przenoszenia bazy, to mogę zasugerować (ale tez nie wiem, czy odniesie skutek i czy będzie odpowiadać Twoim wymaganiom) przeniesienie bazy jako pliku zamiast BACKUP i RESTORE. Jak masz Management Studio, to na jednej maszynie wypinasz bazę poprzez Detach, przenosisz plik, a na drugiej maszynie przypinasz bazę za pomocą Attach. Nie jestem pewien, czy taka metoda zadziała w przypadku różnych wersji serwera i czy w samej bazie zostaną przeniesieni użytkownicy i zabezpieczenia w kontekście tej bazy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1