sql >> Databáze >  >> RDS >> Mysql

Existuje nějaký bezpečný způsob, jak parametrizovat názvy databází v dotazech MySQL?

Název databáze (ani názvy sloupců nebo tabulek) nejsou datové hodnoty, a proto nejsou vhodným použitím zástupných symbolů. chtít to udělat je obvykle špatné znamení; pouze DBA by měl být schopen vydat create database , protože to vyžaduje určitá značná privilegia. Většina aplikací vyžaduje, aby DBA vydal databázi pro vytvoření a poté vzal vytvořenou databázi jako parametr, který bude použit v argumentech pro dbapi.Connection.

Pokud jste si jisti, že to potřebujete, důvěřujete zdroji vstupu a zkontrolovali jste vstup, zda neobsahuje neplatné znaky, provedli byste náhradu v pythonu, něco jako:

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


  1. mysql - Automaticky aktualizovat výskyty v jiné tabulce

  2. Systémové databáze SQL Server – Obnovení systémových databází

  3. zsh:příkaz nenalezen:mysql

  4. kombinování dotazů mysql AND OR v Codeigniter