Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy istnieje bezpieczny sposób parametryzacji nazw baz danych w zapytaniach MySQL?

Nazwa bazy danych (ani nazwy kolumn lub tabel) nie są wartościami danych, a zatem nie są odpowiednim zastosowaniem symboli zastępczych. chęć zrobienia tego jest zwykle złym znakiem; tylko administrator DBA powinien być w stanie wydać create database , ponieważ wymaga to pewnych znacznych przywilejów. Większość aplikacji wymaga, aby DBA wydał utworzenie bazy danych, a następnie przyjął utworzoną bazę danych jako parametr do użycia w argumentach do dbapi.Connection.

Jeśli jesteś pewien, że tego potrzebujesz, ufasz źródłu danych wejściowych i sprawdziłeś dane wejściowe pod kątem nieprawidłowych znaków, po prostu dokonaj zamiany w pythonie, coś takiego:

def createDB(dbConn, dbName):
    c = dbConn.cursor()
    query = """CREATE DATABASE %s;""" % dbName
    c.execute(query)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień krok auto_increment pól inkrementacji o

  2. Uzyskaj wyniki, które mieszczą się w promieniach znaczników z bazy danych

  3. SQL JOIN wiele do wielu

  4. Jak mogę wstawić dane do bazy danych MySQL?

  5. Używanie etykiety w klauzuli posiadającej w sqlachemy