Consulte seu banco de dados com o JavaScript SDK
Os fluxos diários de aura.db, as regras que recusam chamadas inseguras e como proteger uma tabela com segurança em nível de linha.
1. Leia as linhas
aura.from('todos') é um atalho para aura.db.from('todos'). Cada chamada retorna { data, error } e nunca é lançada, consulte opções do cliente e erros.
Cadeia de filtros: eq, neq, gt, gte, lt, lte, like, ilike, in, is, e os outros listados na referência do banco de dados . Para uma página de linhas, use range(from, to).
2. Inserir, atualizar e excluir
Duas regras protegem você de erros:
- Uma inserção em lote precisa das mesmas chaves em todas as linhas. Linhas com chaves diferentes retornam
400comAll object keys must match. Preencha as chaves que faltam comnull. update()edelete()sem filtro são recusados pelo cliente com o código de errounfiltered_mutation, antes de qualquer solicitação ser enviada. Para alterar cada linha propositalmente, execute o SQL em um servidor.
3. Uma linha, muitas linhas, conta
count: 'exact' conta todas as linhas correspondentes. 'planned' e 'estimated' são mais rápidos em tabelas muito grandes e aproximadas.
4. Proteja uma mesa
A segurança em nível de linha está desativada em uma nova tabela. Com a chave pública, qualquer pessoa pode ler e escrever. Ative-o e adicione as políticas necessárias:
As funções de banco de dados são aura_anon, aura_authenticated e aura_service_role. auth.uid() é NULL para a chave pública e um ID de usuário para um usuário conectado. Consulte Segurança em nível de linha.
Uma chave service_role ignora RLS por design: mantenha-a em seu servidor.
5. Funções SQL e RPC
Crie uma função a partir de um servidor e chame-a de qualquer lugar com rpc():
grant_execute_toé necessário para chamá-lo. Sem ele, ninguém pode executar a função. Uma função que não está listada obtém403 permission denied for function. Ambosauthenticatedeaura_authenticatedsão aceitos.- Uma nova função pode ser chamada após alguns segundos. Até que a API recarregue seu esquema,
rpc()retorna404 Could not find the function. - A criação de funções com SQL bruto (
CREATE FUNCTION) é recusada: usecreateFunction.
6. Execute SQL de um servidor
db.sql() precisa de uma chave service_role. Ele recusa DELETE sem WHERE e não lê catálogos de sistema como pg_class ou pg_roles. Para listar suas tabelas, use admin.db.schema().