Użytkownicy bazy i uprawnienia
Jak dodać kolejnego użytkownika bazy w DirectAdmin. Uprawnienia (SELECT, INSERT, UPDATE, DELETE, ALL), kiedy jeden user na bazę a kiedy wielu.
Każda baza w DA dostaje jednego użytkownika automatycznie przy tworzeniu. Można jednak dodać kolejnych — przydatne gdy potrzebujesz różnych poziomów dostępu (read-only vs admin) lub udostępniasz bazę kilku aplikacjom.
Co zyskasz
- Dodasz dodatkowych użytkowników do istniejącej bazy.
- Ustawisz konkretne uprawnienia (SELECT, INSERT, UPDATE, DELETE).
- Wybierzesz między „one user per database" a wieloma.
- Rozumiesz różnice uprawnień MySQL.
Wymagania wstępne
- Istniejąca baza w DA. Patrz Tworzenie bazy.
Domyślnie: jeden user, pełne prawa
Po utworzeniu bazy host36592_wp w DA, dostajesz użytkownika host36592_wp z ALL PRIVILEGES na tej bazie. To wystarcza dla 95% aplikacji.
Wskazówka
Dlaczego dodatkowi userzy?
- Read-only dla raportów / dashboard
- Osobny user dla różnych aplikacji (jeden dla WordPress, drugi dla customowego skryptu)
- Audit (kto co zmieniał w bazie)
Krok 1: Otwórz Bazy danych
Zarządzanie kontami → Bazy danych → kliknij na nazwę bazy w tabeli.
Otworzy się strona zarządzania bazą z sekcjami:
- Użytkownicy bazy — lista
- Akcje — tworzenie nowego usera, zarządzanie hasłami
- Ostatnia kopia zapasowa — info o backup
Krok 2: Dodaj nowego użytkownika
W sekcji Użytkownicy bazy → + Dodaj użytkownika. Formularz:
- Nazwa użytkownika — prefix (np.
readonly)- Hasło — generuj silne
- Uprawnienia — zaznacz checkboxes które przyznać:
- SELECT — czytanie
- INSERT — dodawanie wierszy
- UPDATE — modyfikacja wierszy
- DELETE — usuwanie wierszy
- CREATE — tworzenie tabel
- DROP — usuwanie tabel
- ALTER — modyfikacja struktury
- INDEX — tworzenie indeksów
- GRANT — przyznawanie praw innym (rzadko potrzebne)
- ALL PRIVILEGES — wszystko powyżej
Krok 3: Przykładowe konfiguracje
Read-only user (dla raportów):
Uprawnienia: SELECT onlyAplikacja CRUD (typowy WordPress, web app):
Uprawnienia: SELECT, INSERT, UPDATE, DELETEMigracja / setup script (jednorazowy):
Uprawnienia: ALL PRIVILEGESAdmin / DBA:
Uprawnienia: ALL PRIVILEGES, GRANT
Krok 4: Zapisz
Klik Utwórz użytkownika. Hasło zapisz natychmiast.
Pełna nazwa =
<login_konta>_<prefix>. Dla kontahost36592i prefixreadonly→host36592_readonly.
Wszystkie uprawnienia MySQL
| Uprawnienie | Co pozwala |
|---|---|
| SELECT | Czytać dane (SELECT * FROM x) |
| INSERT | Dodawać wiersze (INSERT INTO) |
| UPDATE | Modyfikować wiersze (UPDATE x SET) |
| DELETE | Usuwać wiersze (DELETE FROM) |
| CREATE | Tworzyć tabele (CREATE TABLE) |
| DROP | Usuwać tabele (DROP TABLE) |
| ALTER | Modyfikować schemat (ALTER TABLE) |
| INDEX | Tworzyć indeksy (CREATE INDEX) |
| CREATE TEMPORARY TABLES | Tymczasowe tabele |
| LOCK TABLES | Blokady tabel |
| EXECUTE | Wykonywać procedury składowane |
| CREATE VIEW | Widoki |
| SHOW VIEW | Inspekcja widoków |
| CREATE ROUTINE | Funkcje i procedury |
| ALTER ROUTINE | Modyfikacja procedur |
| EVENT | Scheduled events |
| TRIGGER | Triggery |
| REFERENCES | Foreign keys |
Wzór: aplikacja + admin
host36592_wp ← główny user (ALL PRIVILEGES) — używany przez admina, do migracji
host36592_wp_app ← user aplikacji (SELECT, INSERT, UPDATE, DELETE) — w wp-config.php
host36592_wp_ro ← read-only (SELECT) — dla raportów / backup script
W aplikacji używaj najwęższego zestawu — jeśli WordPress nigdy nie tworzy nowych tabel po instalacji, daj userowi aplikacji tylko CRUD (bez CREATE/DROP).
Zmiana uprawnień istniejącego użytkownika
- Bazy danych → kliknij bazę → użytkownicy → kliknij usera
- Edytuj uprawnienia
- Zapisz
Wskazówka
FLUSH PRIVILEGES robione automatycznie przez DA. Zmiana jest aktywna natychmiast.
Usuwanie użytkownika
Zaznacz checkbox → Usuń. Aplikacja korzystająca z tego usera przestanie działać — pamiętaj zaktualizować jej config.
Najczęstsze problemy
1. „Aplikacja: Access denied for user"
- Login pełny (
host36592_wp, niewp) - Hasło sprawdź (wielkość liter, znaki specjalne)
- Czy user ma odpowiednie uprawnienia do tej bazy
2. „Mogę dać użytkownikowi dostęp do dwóch baz?"
W DA każda baza ma swoją listę userów. Możesz utworzyć usera z tą samą nazwą w wielu bazach, ale każda jest osobna.
Dla cross-database query — potrzebujesz GRANT na obu bazach.
3. „Po zmianie uprawnień aplikacja nadal widzi stare"
Klient bazy cachuje. Restart aplikacji (apache reload albo restart procesu).
4. „Mogę utworzyć usera bez prefixu konta?"
Nie — DA wymusza prefix host36592_. To celowe, żeby nie kolidować z innymi klientami na tym serwerze.
5. „Bezpieczne hasło dla bazy"
Min. 16 znaków, mieszanka. Hasło nie idzie przez sieć (localhost) — ale jak ktoś dostanie się do plików aplikacji (np. wp-config.php), zobaczy hasło → potencjalna eskalacja.
Dla bezpieczeństwa: różne hasła na różne aplikacje (nie reuse).
6. „Niektóre uprawnienia psują WordPress"
WP wymaga: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, plus REFERENCES dla foreign keys.
Bez CREATE/DROP — WP nie może instalować pluginów które tworzą tabele.
7. „GRANT przy aplikacji — bezpieczne?"
GRANT pozwala userowi przyznawać prawa innym. Niebezpieczne w aplikacji webowej (SQL injection → atakujący nadaje sobie prawa). Nie używaj w userze aplikacji.
Słowniczek
- GRANT — komenda MySQL przyznająca uprawnienia.
- REVOKE — odbieranie uprawnień.
- FLUSH PRIVILEGES — przeładowanie uprawnień z bazy
mysql.user. - CRUD — Create, Read, Update, Delete — podstawowe operacje danych.
Related
Feedback
Czy ten artykuł pomógł?

