Tratamiento de las diferencias de propiedad de los objetos tras la actualización - Amazon Aurora

Tratamiento de las diferencias de propiedad de los objetos tras la actualización

Las versiones 4.6 y posteriores, y 5.2 y posteriores de Babelfish incluyen un cambio en el manejo de la propiedad de los objetos a través del punto de conexión de TDS. Al crear nuevos objetos a través del punto de conexión de TDS, estos objetos ahora son propiedad del propietario del esquema y no del usuario actual. Es posible que este cambio de propiedad afecte al comportamiento de los permisos de los objetos nuevos en comparación con los objetos existentes al actualizar desde versiones anteriores a la 4.6 o 5.2.

Para resolver estas diferencias de propiedad, Babelfish proporciona la función sys.generate_alter_ownership_statements(). Esta función genera instrucciones SQL que alinean la propiedad del objeto con la propiedad del esquema.

Tenga en cuenta las siguientes limitaciones al abordar la propiedad del objeto:

  • Los usuarios con permisos CREATE concedidos a través del punto de conexión de PostgreSQL no pueden crear objetos a través del punto de conexión de TDS en esos esquemas.

  • No se recomienda modificar los permisos de los objetos de T-SQL a través del punto de conexión de PostgreSQL, ya que podría provocar un comportamiento incorrecto de T-SQL.

  • Los permisos de acceso pueden diferir entre los objetos antiguos y los nuevos debido a la falta de coincidencia en su propiedad. Por ejemplo, tenga en cuenta un esquema propiedad de sch_own que incluye objetos propiedad de dbo. En este caso, los objetos propiedad de dbo que se crearon antes de la actualización podrían tener permisos de acceso diferentes en comparación con los objetos propiedad de sch_own que se crearon después de la actualización. Esto puede afectar a operaciones como SELECT e INSERT.

Si el clúster de base de datos incluye objetos creados en versiones de Babelfish anteriores a la 4.6 o 5.2, tenga en cuenta la posibilidad de alinear su propiedad.

Tratamiento de las diferencias de propiedad de los objetos
  1. Conéctese a la base de datos babelfish_db en el clúster de base de datos mediante el punto de conexión de PostgreSQL.

  2. Ejecuta el siguiente comando:

    SELECT * from sys.generate_alter_ownership_statements();

    Esto genera una lista de instrucciones SQL destinadas a estandarizar la propiedad entre los objetos.

  3. Ejecute primero las instrucciones generadas en un entorno de prueba para validar su efecto antes de aplicarlas en el entorno de producción.

Le recomendamos que ejecute estas instrucciones para lograr un modelo de propiedad de objetos coherente en toda la base de datos.