El principal de la base de datos posee un esquema en la base de datos y no se puede descartar el mensaje
28
Estoy tratando de eliminar un principal de la base de datos pero no puedo porque posee un esquema. Sin embargo, cuando voy a editar el usuario, la casilla para desmarcar los esquemas es azul e inamovible. ¿Cómo puedo eliminar el principal de estos esquemas?
alterauthorizationonschema::YourSchemaName
to dbo
go
dropuser TheUserYouWantToDelete
go
No puede descartar un principal que es propietario de un esquema, por lo que ALTER AUTHORZATIONcambia el esquema propio (que usé YourSchemaName, pero obviamente lo sustituyo con el esquema propio en su base de datos) a dbo(del mismo modo, puede cambiar la propiedad a cualquier principal que necesite en su medio ambiente). Eso le permitirá descartar al usuario que poseía el esquema anteriormente (por ejemplo, los propósitos que usé TheUserYouWantToDelete, pero ese será el ahora no propietario que desea descartar).
Bien, entonces esto funcionó. Sin embargo, estoy un poco confundido sobre por qué. ¿Por qué necesito autorizar el esquema a otro esquema? Tal vez yo necesidad de revisar los esquemas ...
rsteckly
1
@rsteckly Simplified, autorización = propiedad. Si pudiera eliminar el usuario que posee el esquema, el esquema no sería válido porque el propietario ya no existe. Imagine que puede eliminar un cliente que ha realizado un pedido. ¿Qué significa el CustomerID en la tabla de pedidos si ya no hay un cliente al que señala? ¿Dónde debo enviar el pedido?
Aaron Bertrand
Lo siento, mi ejemplo no fue bien explicado. No estamos cambiando la autorización al dboesquema, estamos cambiando la autorización al dbodirector. Eso podría haber sido cualquier base de datos principal.
Thomas Stringer
30
La forma T-SQL funciona. Gracias a
http://zarez.net/?p=179
encontré la forma SSMS de hacer esto (UI).
Para cambiar el propietario del esquema de Sql Server Management Studio:
Expand your database-> Security -> Schemas
En los Detalles del Explorador de objetos puede ver una lista de los esquemas y los propietarios:
Si no sabe qué esquema (s) posee el Usuario, verifique las propiedades del Usuario.
Abra las propiedades del esquema que posee el usuario y haga clic en "Buscar" para encontrar un nuevo propietario. Si no conoce al nuevo propietario, puede "Buscar" uno.
Properites -> Search ->Browse
y puede cambiar el propietario del esquema a dbo (o el que sea más apropiado).
dbo
esquema, estamos cambiando la autorización aldbo
director. Eso podría haber sido cualquier base de datos principal.La forma T-SQL funciona. Gracias a http://zarez.net/?p=179 encontré la forma SSMS de hacer esto (UI).
Para cambiar el propietario del esquema de Sql Server Management Studio:
En los Detalles del Explorador de objetos puede ver una lista de los esquemas y los propietarios:
Si no sabe qué esquema (s) posee el Usuario, verifique las propiedades del Usuario.
Abra las propiedades del esquema que posee el usuario y haga clic en "Buscar" para encontrar un nuevo propietario. Si no conoce al nuevo propietario, puede "Buscar" uno.
y puede cambiar el propietario del esquema a dbo (o el que sea más apropiado).
fuente