ALTER APPLICATION ROLE (Transact-SQL)
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Instancia administrada
Esta instrucción cambia el nombre, la contraseña o el esquema predeterminado de un rol de aplicación.
Convenciones de sintaxis de Transact-SQL
Sintaxis
ALTER APPLICATION ROLE application_role_name
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = new_application_role_name
| PASSWORD = 'password'
| DEFAULT_SCHEMA = schema_name
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
Argumentos
application_role_name
Nombre del rol de aplicación que va a modificarse.
NAME =new_application_role_name
Especifica el nuevo nombre del rol de aplicación. Ninguna entidad de seguridad de la base de datos debe utilizar este nombre.
PASSWORD ='password'
Especifica la contraseña del rol de aplicación. password debe cumplir los requisitos de la directiva de contraseñas de Windows del equipo que ejecuta la instancia de SQL Server. Debe utilizar siempre contraseñas seguras.
DEFAULT_SCHEMA =schema_name
Especifica el primer esquema donde buscará el servidor cuando resuelva los nombres de objetos. schema_name puede ser un esquema que no exista en la base de datos.
Comentarios
Si el nombre del rol de aplicación nuevo ya existe en la base de datos, la instrucción producirá un error. Cuando se modifica el nombre, la contraseña o el esquema predeterminado de un rol de aplicación, no se cambia el identificador asociado al rol.
Importante
La directiva de expiración de contraseñas no se aplica a las contraseñas de rol de aplicación. Por esta razón, debe extremar las precauciones y seleccionar contraseñas seguras. Las aplicaciones que invocan roles de aplicación deben almacenar sus propias contraseñas.
Los roles de aplicación se pueden ver en la vista de catálogo sys.database_principals.
Precaución
En SQL Server 2005 (9.x), el comportamiento de los esquemas es distinto del de las versiones anteriores de SQL Server. Si en el código se supone que los esquemas son equivalentes a usuarios de base de datos, los resultados obtenidos podrían ser incorrectos. No se deben usar vistas de catálogo antiguas, como sysobjects, en una base de datos en la que nunca se haya usado ninguna de las instrucciones DDL siguientes: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. En una base de datos en la que se ha usado alguna de estas instrucciones, deben usarse las nuevas vistas de catálogo. En las nuevas vistas de catálogo se tiene en cuenta la separación de entidades de seguridad y esquemas que se presentó en SQL Server 2005 (9.x). Para obtener más información sobre las vistas de catálogo, vea Vistas de catálogo (Transact-SQL).
Permisos
Requiere el permiso ALTER ANY APPLICATION ROLE en la base de datos. Para cambiar el esquema predeterminado, el usuario también tiene que cambiar el permiso en el rol de aplicación. Un rol de aplicación puede alterar su propio esquema predeterminado, pero no su nombre ni su contraseña.
Ejemplos
A. Cambiar el nombre de un rol de aplicación
En el ejemplo siguiente, se cambia el nombre del rol de aplicación de weekly_receipts
a receipts_ledger
.
USE AdventureWorks2022;
CREATE APPLICATION ROLE weekly_receipts
WITH PASSWORD = '987Gbv8$76sPYY5m23' ,
DEFAULT_SCHEMA = Sales;
GO
ALTER APPLICATION ROLE weekly_receipts
WITH NAME = receipts_ledger;
GO
B. Cambiar la contraseña de un rol de aplicación
En el ejemplo siguiente, se cambia la contraseña del rol de aplicación receipts_ledger
.
ALTER APPLICATION ROLE receipts_ledger
WITH PASSWORD = '897yUUbv867y$200nk2i';
GO
C. Cambiar el nombre, la contraseña y el esquema predeterminado
En el ejemplo siguiente, se cambia el nombre, la contraseña y el esquema predeterminado del rol de aplicación receipts_ledger
en la misma operación.
ALTER APPLICATION ROLE receipts_ledger
WITH NAME = weekly_ledger,
PASSWORD = '897yUUbv77bsrEE00nk2i',
DEFAULT_SCHEMA = Production;
GO
Vea también
Roles de aplicación
CREATE APPLICATION ROLE (Transact-SQL)
DROP APPLICATION ROLE (Transact-SQL)
EVENTDATA (Transact-SQL)