Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

175
Visualizações
Crear rol programáticamente con parámetros

Estoy buscando una manera de crear una función que tome dos parámetros para el nombre de usuario y la contraseña y cree un rol de solo lectura con él. He intentado algo como:

 create or replace function create_user_readonly ( unm varchar, pwd varchar ) returns varchar(10) as $$ begin create role unm login password @pwd; return 'success'; end; $$ language plpgsql;

Esto arroja el error:

[42601] ERROR: error de sintaxis en o cerca de la posición "@": 151

Pensé en usar SQL dinámico para construir la consulta, pero encontré esto aquí ( https://www.postgresql.org/docs/9.1/static/plpgsql-statements.html ):

Otra restricción de los símbolos de parámetros es que solo funcionan en los comandos SELECCIONAR, INSERTAR, ACTUALIZAR y ELIMINAR. En otros tipos de declaraciones (genéricamente llamadas declaraciones de utilidad), debe insertar valores textualmente, incluso si son solo valores de datos.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Aquí hay un ejemplo:

 create or replace function create_user_readonly ( unm varchar, pwd varchar ) returns varchar(10) as $$ begin execute format($f$create role %I login password '%s'$f$,unm,pwd); execute format('alter role %I set transaction_read_only to on',unm); return 'success'; end; $$ language plpgsql;

tenga en cuenta que deberá modificar el usuario para establecer la transaction_read_only también para que sea de solo lectura. también :

CREATE ROLE no ofrece establecer el valor predeterminado de RO en el rol.

ALTER ROLE hace

Y tenga en cuenta que superar la configuración de uset transaction_read_only es tan fácil como ejecutar una declaración.

y crear un rol no le dará permiso de CONNECT , use CREATE USER en su lugar si desea uno.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda