Le deuxième niveau du modèle de sécurité de Firebird est celui des privilèges SQL. Après une connexion réussie (niveau un), un utilisateur autorisé a accès au serveur et à toutes les bases de données de ce serveur, mais cela ne signifie pas qu'il a accès à tous les objets de toutes les bases de données. Une fois qu'un objet est créé, seuls l'utilisateur qui a créé l'objet (son propriétaire) et les administrateurs y ont accès. Un utilisateur a besoin de privilèges pour chaque objet auquel il doit accéder. En général, les privilèges doivent être accordés explicitement par

Un privilège comprend le type d'accès DML (SELECT, INSERT, UPDATE, DELETE, EXECUTE et REFERENCES), le nom de l'objet de base de données pour lequel le privilège est accordé (table, vue, procédure ou rôle) et le nom de l'objet du privilège (utilisateur, procédure, déclencheur, rôle). Il existe différentes façons d'accorder plusieurs types d'accès au même objet de base de données à plusieurs utilisateurs dans une seule instruction GRANT. Les privilèges peuvent être révoqués à l'aide de l'instruction REVOKE.

Tous les privilèges d'accès aux objets de la base de données sont stockés dans la base de données elle-même, et ne peuvent être appliqués à aucune autre base de données.