Sök…


Bästa praxis

Begränsa roten (och alla andra SUPER-privilegierade användare) till

GRANT ... TO root@localhost ...

Det förhindrar åtkomst från andra servrar. Du bör dela ut SUPER till mycket få människor, och de bör vara medvetna om sitt ansvar. Ansökan bör inte ha SUPER.

Begränsa applikationsinloggningar till den databas den använder:

GRANT ... ON dbname.* ...

På så sätt kan någon som går in i programkoden inte komma förbi dbname. Detta kan förfinas ytterligare via någon av dessa:

GRANT SELECT ON dname.* ...    -- "read only"
GRANT ... ON dname.tblname ... -- "just one table"

Den readonly kan också behöva "säkra" saker som

GRANT SELECT, CREATE TEMPORARY TABLE ON dname.* ...    -- "read only"

Som du säger finns det ingen absolut säkerhet. Min poäng här är att du kan göra några saker för att sakta hackare. (Samma sak gäller för ärliga människor.

I sällsynta fall kan du behöva applikationen för att göra något tillgängligt endast för rot. detta kan göras via en "lagrad procedur" som har SECURITY DEFINER (och root definierar det). Det kommer bara att avslöja vad SP gör, vilket till exempel kan vara en viss åtgärd på ett särskilt bord.

Värd (av användaren @ värd)

"Värd" kan vara antingen ett värdnamn eller en IP-adress. Det kan också involvera jokertecken.

GRANT SELECT ON db.* TO sam@'my.domain.com' IDENTIFIED BY 'foo';

Exempel: Obs! Dessa måste vanligtvis citeras

localhost -- the same machine as mysqld
'my.domain.com' -- a specific domain; this involves a lookup
'11.22.33.44' -- a specific IP address
'192.168.1.%' -- wild card for trailing part of IP address.  (192.168.% and 10.% and 11.% are "internal" ip addresses.)

Att använda localhost förlitar sig serverns säkerhet. För bästa praxis bör root endast tillåtas via localhost. I vissa fall betyder dessa samma sak: 0.0.0.1 och ::1 .



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow