CRIAR USUÁRIO - Amazon Redshift

CRIAR USUÁRIO

Cria um usuário de banco de dados. Os usuários do banco de dados podem recuperar dados, executar comandos e realizar outras ações em um banco de dados, dependendo de seus privilégios e perfis. Você deve ser um superusuário do banco de dados para executar este comando.

Privilégios obrigatórios

A seguir estão os privilégios obrigatórios para CREATE USER:

  • Superusuário

  • Usuários com o privilégio CREATE USER

Sintaxe

CREATE USER name [ WITH ] PASSWORD { 'password' | 'md5hash' | 'sha256hash' | DISABLE } [ option [ ... ] ] where option can be: CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | SYSLOG ACCESS { RESTRICTED | UNRESTRICTED } | IN GROUP groupname [, ... ] | VALID UNTIL 'abstime' | CONNECTION LIMIT { limit | UNLIMITED } | SESSION TIMEOUT limit | EXTERNALID external_id

Parâmetros

name

O nome do usuário a ser criado. O nome do usuário não pode ser PUBLIC. Para obter mais informações sobre nomes válidos, consulte Nomes e identificadores.

WITH

Palavra-chave opcional. WITH é ignorado pelo Amazon Redshift

PASSWORD { 'password' | 'md5hash' | 'sha256hash' | DISABLE }

Define a senha do usuário.

Por padrão, os usuários podem alterar suas próprias senhas, a menos que a senha esteja desabilitada. Para desabilitar a senha de um usuário, especifique DISABLE. Quando a senha de um usuário for desabilitada, ela será excluída do sistema e o usuário poderá fazer logon apenas usando as credenciais temporárias do usuário do AWS Identity and Access Management (IAM). Para obter mais informações, consulte Uso da autenticação do IAM para gerar credenciais do usuário do banco de dados. Apenas um superusuário pode habilitar ou desabilitar senhas. Não é possível desabilitar a senha de um superusuário. Para habilitar uma senha, execute ALTER USER e especifique uma senha.

É possível especificar a senha em texto simples, como uma string de hash MD5 ou como uma string de hash SHA256.

nota

Ao executar um novo cluster usando o AWS Management Console, a AWS CLI, ou a API do Amazon Redshift,, você deverá fornecer uma senha de texto não criptografado para o usuário inicial do banco de dados. Você pode alterar a senha posteriormente usando ALTER USER.

Para texto simples, a senha deve atender às seguintes restrições:

  • Deve ter de 8 a 64 caracteres.

  • Deve conter pelo menos uma letra maiúscula, uma letra minúscula e um número.

  • Pode conter qualquer caractere ASCII com códigos ASCII 33–126, exceto aspas simples ('), aspas duplas ("), \, / ou @.

É possível especificar uma sequência de hash MD5 que inclua a senha e o nome do usuário como alternativa mais segura para o parâmetro CREATE USER em texto simples.

nota

Quando você especifica uma sequência de hash MD5, o comando CREATE USER procura uma sequência de hash MD5 válida, mas não valida a parte da sequência contendo a senha. Nesse caso, é possível criar uma senha, como uma sequência vazia, que você não pode usar para acessar o banco de dados.

Para especificar uma senha MD5, siga estas etapas:

  1. Concatene a senha e o nome do usuário.

    Por exemplo, para senha ez e usuário user1, a sequência concatenada é ezuser1.

  2. Converta a sequência concatenada em uma sequência de hash MD5 de 32 caracteres. É possível usar qualquer utilitário de MD5 para criar a sequência de hash. O exemplo a seguir usa o Função MD5 do Amazon Redshift e o operador de concatenação (||) para retornar uma string de hash MD5 de 32 caracteres.

    select md5('ez' || 'user1'); md5 -------------------------------- 153c434b4b77c89e6b94f12c5393af5b
  3. Concatene 'md5' na frente da sequência de hash MD5 e forneça a sequência concatenada como argumento md5hash.

    create user user1 password 'md5153c434b4b77c89e6b94f12c5393af5b';
  4. Faça login no banco de dados usando as credenciais de login.

    Para este exemplo, faça logon como user1 com a senha ez.

Uma alternativa segura é especificar o hash SHA-256 de uma string de senha; ou você pode fornecer seu próprio digest SHA-256 válido e salt de 256 bits que foi usado para criar o digest.

  • Digest: a saída de uma função de hash.

  • Salt: dados gerados aleatoriamente combinados com a senha para ajudar a reduzir padrões na saída da função de hash.

'sha256|Mypassword'
'sha256|digest|256-bit-salt'

No exemplo a seguir, o Amazon Redshift gera e gerencia o salt.

CREATE USER admin PASSWORD 'sha256|Mypassword1';

No exemplo a seguir, são fornecidos um resumo SHA-256 válido e salt de 256 bits que foi usado para criar o resumo.

Para especificar uma senha e aplicar hash com seu próprio sal, siga estas etapas:

  1. Crie um sal de 256 bits. É possível obter um sal usando qualquer gerador de string hexadecimal para gerar uma string de 64 caracteres. Neste exemplo, o sal é c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6.

  2. Use a função FROM_HEX para converter o sal em binário. Isso ocorre porque a função SHA2 requer a representação binária do sal. Veja a instrução a seguir.

    SELECT FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6');
  3. Use a função CONCAT para acrescentar o sal à sua senha. Neste exemplo, a senha é Mypassword1. Veja a instrução a seguir.

    SELECT CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6'));
  4. Use a função SHA2 para criar um resumo da combinação de senha e sal. Veja a instrução a seguir.

    SELECT SHA2(CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6')), 0);
  5. Usando o resumo e o sal das etapas anteriores, crie o usuário. Veja a instrução a seguir.

    CREATE USER admin PASSWORD 'sha256|821708135fcc42eb3afda85286dee0ed15c2c461d000291609f77eb113073ec2|c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6';
  6. Faça login no banco de dados usando as credenciais de login.

    Para este exemplo, faça logon como admin com a senha Mypassword1.

Se você definir uma senha em texto sem especificar a função de hash, um digest MD5 será gerado usando o nome de usuário como salt.

CREATEDB | NOCREATEDB

A opção CREATEDB permite que o novo usuário crie bancos de dados. NOCREATEDB é o padrão.

CREATEUSER | NOCREATEUSER

A opção CREATEUSER cria um superusuário com todos os privilégios de banco de dados, incluindo CREATE USER. NOCREATEUSER é o valor padrão. Para obter mais informações, consulte superuser.

SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }

Uma cláusula que especifica o nível de acesso do usuário para as tabelas e as visualizações de sistema do Amazon Redshift.

Usuários regulares que têm a permissão SYSLOG ACCESS RESTRICTED podem ver somente as linhas geradas por esse usuário nas tabelas e visualizações do sistema visíveis ao usuário. O padrão é RESTRICTED.

Usuários regulares que têm a permissão UNRESTRICTED podem ver todas as linhas nas tabelas e visualizações de sistema visíveis ao usuário, incluindo as linhas geradas por outro usuário. UNRESTRICTED não fornece acesso para os usuários regulares às tabelas visíveis para superusuários. Somente superusuários podem visualizar tabelas visíveis para superusuários.

nota

Fornecer acesso ilimitado para um usuário às tabelas de sistema é o mesmo que dar ao usuário visibilidade para os dados gerados por outros usuários. Por exemplo, STL_QUERY e STL_QUERYTEXT contêm texto completo de instruções INSERT, UPDATE e DELETE, e podem conter dados confidenciais gerados pelos usuários.

Todas as linhas em SVV_TRANSACTIONS são visíveis a todos os usuários.

Para obter mais informações, consulte Visibilidade de dados em tabelas e visualizações de sistema.

IN GROUP groupname

Especifica o nome de um grupo existente ao qual o usuário pertence. Vários nomes de grupos podem ser listados.

VALID UNTIL abstime

A opção VALID UNTIL define um tempo absoluto após o qual a senha do usuário não é mais válida. Por padrão, a senha não tem um limite de tempo.

CONNECTION LIMIT { limite | UNLIMITED }

Número máximo de conexões de banco de dados que o usuário pode abrir simultaneamente. Não há aplicação de limite para superusuários. Use a palavra-chave UNLIMITED para permitir o número máximo de conexões simultâneas. Um limite no número de conexões para cada banco de dados pode ser aplicável. Para obter mais informações, consulte CREATE DATABASE. O valor padrão é UNLIMITED. Para visualizar as conexões atuais, consulte a exibição STV_SESSIONS do sistema.

nota

Se limites de usuário e de conexão de banco de dados forem aplicáveis, um slot de conexão não utilizado que esteja dentro de ambos os limites deve estar disponível quando um usuário tenta se conectar.

SESSION TIMEOUT limit

O tempo máximo em segundos em que uma sessão permanece inativa ou ociosa. O intervalo é de 60 segundos (um minuto) a 1.728.000 segundos (20 dias). Se nenhum tempo limite de sessão estiver definido para o usuário, a configuração de cluster será aplicada. Para obter mais informações, consulte “Cotas e limites no Amazon Redshift” no Guia de gerenciamento de clusters do Amazon Redshift.

Quando você define o tempo limite da sessão, ele é aplicado somente a novas sessões.

Para exibir informações sobre sessões de usuário ativas, incluindo a hora de início, o nome de usuário e o tempo limite da sessão, consulte a visualização de sistema STV_SESSIONS. Para exibir informações sobre o histórico de sessões de usuário, consulte a visualização STL_SESSIONS. Para recuperar informações sobre usuários do banco de dados, incluindo valores de tempo limite de sessão, consulte a visualização SVL_USER_INFO.

EXTERNALID external_id

O identificador para o usuário, que está associado a um provedor de identidades. O usuário deve ter a senha desabilitada. Para obter mais informações, consulte Federação do provedor de identidades (IdP) nativo para o Amazon Redshift.

Observações de uso

Por padrão, todos os usuários têm privilégios CREATE e USAGE no esquema PUBLIC. Para impedir que usuários criem objetos no esquema PUBLIC de um banco de dados, use o comando REVOKE para remover esse privilégio.

Ao usar a autenticação do IAM para criar credenciais de usuário de banco de dados, convém criar um superusuário que possa fazer logon usando apenas credenciais temporárias. Você não pode desabilitar a senha de um superusuário, mas pode criar uma senha desconhecida usando uma string de hash MD5 gerada aleatoriamente.

create user iam_superuser password 'md5A1234567890123456780123456789012' createuser;

As maiúsculas e minnúsculas de um nome de usuário entre aspas duplas são sempre mantidas, independentemente da opção de configuração enable_case_sensitive_identifier. Para obter mais informações, consulte enable_case_sensitive_identifier.

Exemplos

O comando a seguir cria um usuário chamado dbuser, com a senha “abcD1234”, privilégios de criação de banco de dados e um limite de 30 conexões.

create user dbuser with password 'abcD1234' createdb connection limit 30;

Consulte a tabela de catálogo PG_USER_INFO para exibir detalhes sobre o usuário do bancos de dados.

select * from pg_user_info; usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig | useconnlimit -----------+----------+-------------+----------+-----------+----------+----------+-----------+------------- rdsdb | 1 | true | true | true | ******** | infinity | | adminuser | 100 | true | true | false | ******** | | | UNLIMITED dbuser | 102 | true | false | false | ******** | | | 30

No exemplo, a senha da conta é válida até 10 de junho de 2017.

create user dbuser with password 'abcD1234' valid until '2017-06-10';

O exemplo a seguir cria um usuário com uma senha que diferencia maiúsculas de minúsculas e que contém caracteres especiais.

create user newman with password '@AbC4321!';

Para usar uma barra invertida (“\") na sua senha MD5, ignore a barra invertida com uma barra invertida na sua string de origem. O exemplo a seguir cria um usuário denominado slashpass com uma única barra invertida ("\") como senha.

select md5('\\'||'slashpass'); md5 -------------------------------- 0c983d1a624280812631c5389e60d48c

Crie um usuário com a senha md5.

create user slashpass password 'md50c983d1a624280812631c5389e60d48c';

O exemplo a seguir cria um usuário chamado dbuser com um tempo limite de sessão ociosa definido para 120 segundos.

CREATE USER dbuser password 'abcD1234' SESSION TIMEOUT 120;

O exemplo a seguir cria um usuário denominado bob. Esse namespace é myco_aad. Isso é apenas um exemplo. Para executar o comando com êxito, você deve ter um provedor de identidades registrado. Para obter mais informações, consulte Federação do provedor de identidades (IdP) nativo para o Amazon Redshift.

CREATE USER myco_aad:bob EXTERNALID "ABC123" PASSWORD DISABLE;