13.7.1.10 DEFINIR palavra-PASSE de Instrução
SET PASSWORD
instrução atribui uma senha para uma conta de usuário MySQL. A senha pode ser explicitamente especificada na declaração ou gerada aleatoriamente pelo MySQL. A Declaração também pode incluir uma cláusula de verificação de senha que especifica a senha atual da conta a ser substituída, e uma cláusula que gerencia se uma Conta tem uma senha secundária., '
and auth_string
''
each represent a cleartext (unencrypted) password.current_auth_string
'
em Vez de usar SET PASSWORD
para atribuir palavras-passe, ALTER USER
é o preferido instrução por conta de alterações, incluindo a atribuição de senhas., Por exemplo:
ALTER USER user IDENTIFIED BY 'auth_string';
Cláusulas aleatórias de geração de senha, confirmação da senha e secundário senhas aplicam-se apenas para contas que usar um plugin de autenticação que armazena as credenciais internamente para o MySQL. Para contas que usam um plugin que executa autenticação contra um sistema de credenciais que é externo ao MySQL, a gestão de senha deve ser tratada externamente contra esse sistema também. Para mais informações sobre armazenamento interno de credenciais, ver secção 6.2.15, “Gestão de senhas”.,
TheREPLACE '
clause performs password verification and is available as of MySQL 8.0.13. Se indicado:current_auth_string
'
-
REPLACE
especifica a senha actual da conta a substituir, como texto de cleartexto (não cifrado). -
a cláusula deve ser dada se forem necessárias alterações de senha para a conta para especificar a senha actual, como verificação de que o utilizador que tenta fazer a alteração conhece realmente a senha actual.,
-
a cláusula é opcional se a senha mudar para a conta pode, mas não precisa, especificar a senha actual.
-
a declaração falha se a cláusula for dada mas não corresponder à senha atual, mesmo que a cláusula seja opcional.
-
REPLACE
só pode ser especificado ao alterar a senha da conta para o utilizador actual.
Para mais informações sobre a verificação da senha, especificando a senha actual, ver secção 6.2.15, “Gestão da senha”.,
a cláusulaRETAIN CURRENT PASSWORD
implementa a capacidade de dupla senha e está disponível a partir do MySQL 8.0.14. Se indicado:
-
RETAIN CURRENT PASSWORD
mantém uma senha corrente da conta como sua senha secundária, substituindo qualquer senha secundária existente. A nova senha se torna a senha primária, mas os clientes podem usar a conta para se conectar ao servidor usando a senha primária ou secundária., (Exception: If the new password specified by theSET PASSWORD
statement is empty, the secondary password becomes empty as well, even ifRETAIN CURRENT PASSWORD
is Giv.) -
se especificar
RETAIN CURRENT PASSWORD
para uma conta que tenha uma senha primária vazia, a declaração falha. -
Se uma conta tiver uma senha secundária e você alterar a sua senha primária sem especificar
RETAIN CURRENT PASSWORD
, a senha secundária permanece inalterada.
Para mais informações sobre a utilização de senhas duplas, ver secção 6.2.,15, “Password Management”.
SET PASSWORD
permite que estas auth_option
sintaxe:
-
= '
auth_string
'Atribui a conta o dado literal de palavra-passe.
-
TO RANDOM
atribui à conta uma senha gerada aleatoriamente pelo MySQL. A Declaração também retorna a senha de cleartext em um conjunto de resultados para torná-lo disponível para o usuário ou aplicação que executa a declaração.,
para mais detalhes sobre o conjunto de resultados e as características das senhas geradas aleatoriamente, consulte a geração aleatória de senhas.
a geração de senha Aleatória está disponível a partir de MySQL 8.0.18.
Em algumas circunstâncias, SET PASSWORD
pode ser gravado em logs do servidor ou no lado do cliente em um arquivo de histórico como ~/.mysql_history
o que significa que o texto não criptografado senhas pode ser lido por qualquer pessoa que tenha acesso de leitura para a informação., Para informações sobre as condições em que isso ocorre para os logs do servidor e como controlá-lo, veja a seção 6.1.2.3, “senhas e Logging”. Para informações semelhantes sobre o registo do lado do cliente, ver secção 4.5.1.3,”registo do cliente mysql”.,p> SET PASSWORD
pode ser usado com ou sem um FOR
cláusula que explicitamente os nomes de uma conta de utilizador:
-
Com um
FOR
cláusula, a instrução define a senha para o nome de conta, que devem existir:user
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
-
sem
FOR
cláusula, a instrução define a senha para o usuário atual:user
SET PASSWORD = 'auth_string';
Qualquer cliente que se conecta ao servidor usando uma não anônimos da conta, pode alterar a palavra-passe para essa conta., (Em particular, você pode alterar sua própria senha. Para ver a conta em que o servidor é autenticado como, invocar o
CURRENT_USER()
função:SELECT CURRENT_USER();
Se FOR
cláusula for fornecido, o nome da conta, utiliza o formato descrito na Seção 6.2.4, “Especificando os Nomes de Conta”. Por exemplo: user
SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';
a parte do nome da máquina do nome da conta, se omitida, é por omissão '%'
.,
SET PASSWORD
interpreta a cadeia de caracteres como uma cadeia de texto, passa-a para o plugin de autenticação associado à conta, e guarda o resultado devolvido pelo plugin na linha de conta nomysql.user
tabela de Sistema. (O plugin tem a oportunidade de ajustar o valor no formato de encriptação que espera. O plugin pode utilizar o valor especificado, caso em que não ocorre nenhuma amarração.,)
definir a senha para uma conta nomeada (com uma cláusula FOR
) requer o UPDATE
privilégio para o mysql
system schema. A configuração da senha para si próprio (para uma conta não-homónima com no FOR
cláusula) não requer privilégios especiais.,
Instruções que modificar secundário senhas exigir esses privilégios:
-
APPLICATION_PASSWORD_ADMIN
privilégio é necessário para usar oRETAIN CURRENT PASSWORD
cláusula deSET PASSWORD
instruções que se aplicam à sua própria conta. O privilégio é necessário para manipular sua própria senha secundária, porque a maioria dos usuários exigem apenas uma senha., -
Se uma conta for autorizada a manipular senhas secundárias para todas as contas, deve ser-lhe concedido o privilégio
em vez de
APPLICATION_PASSWORD_ADMIN
.
o read_only
variável de sistema é ativado, SET PASSWORD
requer o CONNECTION_ADMIN
privilégio (ou o obsoleto SUPER
privilégio), além de outros privilégios.
para mais informações sobre a definição de senhas e plugins de autenticação, ver secção 6.2.,14, “Assigning Account Passwords”, and Section 6.2.17,”Pluggable Authentication”.