-
Al configurar permisos, independientemente del usuario o rol, son los objetos para configurar permisos. Excepto que los roles de la aplicación son especiales y tienen relaciones mutuamente excluyentes con otros roles y usuarios, los roles y miembros de la base de datos tienen una relación muy estrecha en términos de permisos. Un usuario puede pertenecer a múltiples roles de base de datos al mismo tiempo y cada rol puede tener permisos diferentes. En este momento, el principio para que los usuarios obtengan permisos reales es "unión", a menos que exista una configuración de denegación (prohibida). Por ejemplo, el rol A tiene prohibido leer la tabla de datos B, pero el rol C puede leer la tabla de datos.
B, en este momento, el usuario que pertenece a los roles A y C aún no puede leer la tabla de datos B porque ha sido prohibido.
Los objetos de permisos se pueden dividir en servidores y bases de datos, es decir, los permisos se pueden configurar por separado para estos dos; consulte la siguiente explicación.
Especifique los permisos del servidor (1) Haga clic derecho en el servidor en el Explorador de objetos y seleccione "Propiedades".
(2) Cambie a "Permisos" en el cuadro de diálogo.
(3) Seleccione el objeto para el cual se establecerán permisos en "Nombre de inicio de sesión o función" y verifique la autorización respectivamente en "Permisos explícitos".
Una vez completado, haga clic en el botón "Aceptar", como se muestra en la Figura 15-21.
Como se muestra en la Figura 15-21, es la configuración de permisos para el servidor. El "autorizador" es el que actualmente está conectado a SQL Server
El nombre de inicio de sesión del servidor; "Permisos" son los permisos que pueden establecer todos los nombres de inicio de sesión actuales; "Conceder" significa otorgar permisos, si está marcado "Tener concesión", significa que sa otorga permisos al objeto seleccionado y puede; luego concédelos a otros inicios de sesión; "Rechazar" Simplemente está prohibido su uso.
La selección de estas tres opciones está relacionada. Si se marca "Denegar", se borrarán "Conceder" y "Conceder"; si se marca "Conceder", se borrará "Rechazar" y se seleccionará "Conceder". .
"Nombre de inicio de sesión o rol" es el objeto para el cual se establecen los permisos. Los lectores pueden hacer clic en el botón "Agregar" para especificar otros nombres de inicio de sesión o roles. Sin embargo, todos los roles de servidor integrados no pueden cambiar los permisos, pero se pueden especificar permisos para el. rol público.
Para ver los permisos del inicio de sesión o rol seleccionado actualmente, haga clic en el botón Permisos efectivos, ya que los permisos efectivos no solo pueden establecerse en la Figura 15-21, sino que también dependen del rol al que pertenece el inicio de sesión. Por lo tanto, la Figura 15-21 solo mostrará los permisos definidos en esta configuración y no se mostrarán los permisos existentes predeterminados.
Figura 15-21 Establecer permisos del servidor y especificar permisos de la base de datos (1) Seleccione la base de datos del libro electrónico en el Explorador de objetos, haga clic derecho y seleccione "Propiedades".
(2) Cambie a "Permisos" en el cuadro de diálogo.
(3) Seleccione el objeto para el cual se establecerán permisos en "Usuario o Función", verifique los permisos en "Permisos explícitos" y haga clic en el botón "Aceptar" cuando esté completo, como se muestra en la Figura 15-22.
Permisos de objetos (1) Seleccione la base de datos de libros electrónicos en el explorador de objetos, abra la "Tabla de datos", seleccione la tabla de datos "Pedidos", haga clic derecho y seleccione "Propiedades".
(2) Cambie a "Permisos" en el cuadro de diálogo.
(3) Haga clic en el botón "Agregar" y luego especifique el usuario, la función de la base de datos o la función de la aplicación cuyos permisos desea cambiar en el cuadro de diálogo.
(4) Seleccione el objeto para el cual se establecerán permisos en "Usuario o Función", verifique los permisos en "Permisos explícitos" y haga clic en el botón "Aceptar" cuando esté completo, como se muestra en la Figura 15-23.
Los métodos de operación de la Figura 15-21 y la Figura 15-23 son exactamente los mismos. La diferencia es que los permisos del servidor, la base de datos y los objetos se configuran por separado, y los objetos que se pueden configurar también son diferentes. En la Figura 15-21, se pueden especificar permisos para el nombre de inicio de sesión y la función del servidor. En la Figura 15-22.
En la Figura 15-23, se pueden especificar permisos para usuarios, roles de base de datos y roles de aplicación. Otra diferencia es que los permisos que se pueden especificar son diferentes.
Figura 15-22 Configuración de permisos de base de datos
Figura 15-23 Configuración de permisos y permisos de objetos
Los permisos que se pueden configurar en SQL Server son muy complejos. Hay 94 permisos del servidor al objeto. Lo que es más difícil de entender son las propiedades del servidor y la base de datos. Los elementos importantes se muestran en la Tabla 15-4.
Tabla 15-4 Descripciones de permisos importantes
Descripción del contenido del permiso
El CONTROL confiere capacidades similares a las de propiedad al beneficiario. El beneficiario tiene en realidad un derecho seguro a
Todos los permisos definidos en el icono
ALTER Otorga la capacidad de cambiar las propiedades (excepto la propiedad) de un objeto asegurable específico. en un rango específico
Cuando se concede el permiso ALTER a un ámbito, también se concede para cambiar, crear o eliminar el ámbito.
Las capacidades de cualquier objeto de seguridad contenido.
ALTER ANY <objeto asegurable del servidor> Otorga la capacidad de crear, modificar o eliminar instancias individuales de un objeto asegurable del servidor.
ALTER ANY <objeto seguro de base de datos> Otorga CREATE, ALTER o DROP a una instancia individual de un objeto seguro de base de datos.
capacidad
TOMAR PROPIEDAD permite al cesionario tomar posesión del objeto de seguridad otorgado
CREATE <objeto de seguridad del servidor> Otorga la capacidad de crear objetos de seguridad del servidor al beneficiario
CREATE <objeto de seguridad de base de datos> Otorga la capacidad de crear objetos de seguridad de base de datos al beneficiario
VER DEFINICIÓN permite al beneficiario acceder a metadatos
El "objeto de seguridad" en la Tabla 15-4 se refiere al objeto de la operación de configuración de permisos, como "Rol" en "Crear rol".
Este es el objeto seguro aquí.
Utilice T-SQL para establecer permisos. Para establecer permisos en T-SQL, puede utilizar las tres declaraciones GRANT (otorgar), DENY (denegar) y REVOKE (revocar).
Estas tres declaraciones tienen muchos usos y sus formas básicas son las siguientes:
OTORGAR TODO o nombre de permiso EN el objeto AL nombre de usuario o rol CON opción
REVOCAR TODO o nombre de permiso EN el objeto AL nombre de usuario o rol CASCADA
DENEGAR TODO o nombre de permiso EN el objeto AL nombre de usuario o rol CASCADA
Cada declaración tiene tres elementos, a saber, nombre de permiso, objeto y usuario (rol), como sigue (Ch151524Grant.sql):
USAR libro electrónico
CONCEDER SELECCIÓN EN OBJETO::dbo.members A David
REFERENCIAS DE CONCESIÓN (ID de miembro) EN OBJETO::dbo.Orders
A DAVID CON OPCIÓN DE BECA
Las declaraciones anteriores utilizan la declaración Grant para otorgar permisos a David respectivamente, pero el contenido del objeto es diferente. Utilice el nombre del objeto como.
Comience con "OBJECT::", seguido del nombre completo, preferiblemente seguido del propietario. La segunda declaración Grant actúa sobre un objeto especial, "(MemberID) ON OBJECT:: dbo.Orders", que representa el MemberID que actúa sobre el objeto Orders.
campo, conceda permisos de visualización en esta columna a David. Al mismo tiempo, agregar "CON OPCIÓN DE CONCESIÓN" significa que David puede otorgar este permiso a otros, lo que equivale a "con concesión" en la Figura 15-23.
En las declaraciones Revocar y Deny, se puede agregar Cascade al final. La función de esta palabra clave es revocar los permisos que el usuario puede otorgar a otros después de To, es decir, cancelar "haber otorgado".
Ver los permisos disponibles Dado que hay muchos permisos disponibles, no hay opciones para elegir en T-SQL, así que use GRANT, DENY y.
Al REVOCAR, primero debe conocer el nombre del permiso antes de poder configurarlo. Los lectores pueden ver sys.fn_builtin_permissions,
Las tres tablas de datos del sistema sys.database_permissions y sys.server_permissions se muestran en la Figura 15-24.
Figura 15-24 Ver permisos disponibles "Permission_name" en la Figura 15-24 es el nombre del permiso disponible, que se puede aplicar a Otorgar, DENEGAR o.
Revocar declaración.
Ver contenido de permisos Para ver el nombre de inicio de sesión actual y el contenido de permisos de usuario, puede ejecutar el procedimiento almacenado sp_helprotect, como se muestra en la Figura 15-25.
mostrado.
El beneficiario en la Figura 15-25 es el nombre del usuario que otorga permisos y el otorgante es el nombre del usuario que otorga permisos a otros.
Se pueden usar hasta cuatro parámetros después del procedimiento almacenado sp_helprotect, que representan el nombre del objeto, el nombre de usuario y el nombre del otorgante. El cuarto parámetro puede ser o o s, que representan permisos de objeto de consulta o permisos de declaración, respectivamente.