Resumen Consultar los permisos en SQl Server

Mensaje enviado por Perez Neira Guillermo <GPN@ctp.com.ar>


Hola:

Te envio el help de SP la forma de ejecutarlo es : "Exec sp_helprotect"

sp_helprotect

Devuelve un informe con información acerca de los permisos de usuario de un objeto o los permisos de una instrucción en la base de datos actual.

Sintaxis

sp_helprotect [ [ @name = ] 'object_statement' ]
    [ , [ @username = ] 'security_account' ]
    [ , [ @grantorname = ] 'grantor' ]
    [ , [ @permissionarea = ] 'type' ]


Argumentos

[@name =] 'object_statement'

Es el nombre del objeto o de una instrucción de la base de datos actual cuyos permisos se van a presentar. El argumento object_statement es de tipo nvarchar(776) y su valor predeterminado es NULL, que devuelve los permisos de todos los objetos e instrucciones. Si el valor es un objeto (tabla, vista, procedimiento almacenado o procedimiento almacenado extendido), tiene que ser un objeto válido de la base de datos actual. El nombre del objeto puede incluir un calificador de propietario en la forma owner.object.

Si object_statement es una instrucción, puede tratarse de:

CREATE DATABASE
CREATE DEFAULT
CREATE FUNCTION
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE VIEW
BACKUP DATABASE
BACKUP LOG

[@username =] 'security_account'

Es el nombre de la cuenta de seguridad cuyos permisos se presentan. El argumento security_account es de tipo sysname y su valor predeterminado es NULL, que devuelve todas las cuentas de seguridad de la base de datos actual. security_account tiene que ser una cuenta de seguridad válida de la base de datos actual. Cuando especifique un usuario de Microsoft® Windows NT®, indique el nombre con el se conoce al usuario de Windows NT en la base de datos (agregado mediante sp_grantdbaccess).

[@grantorname =] 'grantor'

Es el nombre de la cuenta de seguridad que ha concedido los permisos. El argumento grantor es de tipo sysname y su valor predeterminado es NULL, que devuelve la información de los permisos concedidos por las cuentas de seguridad que existan en la base de datos. Cuando especifique un usuario de Windows NT, indique el nombre con el que se conoce al usuario de Windows NT en la base de datos (agregado mediante sp_grantdbaccess).

[@permissionarea =] 'type'

Es una cadena de caracteres que indica si se van a presentar permisos de objetos (cadena de caracteres o), permisos de instrucciones (cadena de caracteres s) o ambos (o s). El argumento type es del tipo de datos varchar(10) y su valor predeterminado es o s. type puede ser cualquier combinación de o y s, con o sin comas o espacios entre o y s.


Valores del código de retorno

0 (correcto) o 1 (error)


Conjuntos de resultados

Nombre de columna | Tipo de datos | Descripción

Owner | sysname | Nombre del propietario del objeto.
Object | sysname | Nombre del objeto.
Grantee | sysname | Nombre de quien ha recibido los permisos.
Grantor | sysname | Nombre de quien ha concedido los permisos al beneficiario.
ProtectType | char(10) | Nombre del tipo de protección: GRANT , REVOKE
Acción | varchar(20) | Nombre del permiso:

REFERENCES
SELECT
INSERT
DELETE
UPDATE
CREATE TABLE
CREATE DATABASE
CREATE FUNCTION
CREATE RULE
CREATE VIEW
CREATE PROCEDURE
EXECUTE
BACKUP DATABASE
CREATE DEFAULT
BACKUP LOG

Columna | sysname | Tipo de permiso:

All = Permiso sobre todas las columnas actuales del objeto.
New = Permiso sobre las nuevas columnas del objeto que se pueden alterar (mediante la instrucción ALTER) posteriormente.
All+New = Combinación de Todas y Nuevas.

Observaciones

Todos los parámetros de este procedimiento son opcionales. Si se ejecuta sin parámetros, sp_helprotect presenta todos los permisos que se han concedido o denegado en la base de datos actual.

Si se especifican algunos parámetros, pero no todos, se tienen que utilizar parámetros con nombre para identificar el parámetro concreto o NULL como marcador de posición. Por ejemplo, para presentar todos los permisos del asignador dbo, ejecute:

EXEC sp_helprotect NULL, NULL, dbo

O bien

EXEC sp_helprotect @grantorname = 'dbo'

El resultado está ordenada por categoría de los permisos, propietario, objeto, beneficiario, asignador, categoría del tipo de protección, tipo de protección, acción e Id. secuencial de columna.

Permisos

De forma predeterminada, los permisos de ejecución corresponden a la función public.


Ejemplos

A. Presentar los permisos de una tabla
Este ejemplo presenta los permisos de la tabla titles.

EXEC sp_helprotect 'titles'

B. Presentar los permisos de un usuario
Este ejemplo presenta todos los permisos que el usuario Judy tiene en la base de datos actual.

EXEC sp_helprotect NULL, 'Judy'


C. Presentar los permisos concedidos por un usuario específico
Este ejemplo presenta todos los permisos concedidos por el usuario Judy en la base de datos actual, con NULL como marcador de posición en los parámetros no especificados.

EXEC sp_helprotect NULL, NULL, 'Judy'


D. Presentar sólo los permisos de las instrucciones
Este ejemplo presenta todos los permisos de instrucciones de la base de datos actual, con NULL como marcador de posición en los parámetros no especificados.

EXEC sp_helprotect NULL, NULL, NULL, 's'


        -----Mensaje original-----
        De: De la Rosa, Pepi [SMTP:pepi@norgren.es]
        Enviado el: miércoles 26 de septiembre de 2001 16:08
        Para: visualbasic-esp@yahoogroups.com
        Asunto: (VB-ESP) Seguridad SQL2000

        Hola compañeros, a ver si alguien pudiera ayudarme con la siguiente
inquietud:
        Entorno: VB60 - ADO, SQL2000
        Quisiera saber si es posible, en el momento de conectarme a la B.D.
SQL, poder saber si el usuario que se está conectando en ese momento tiene
acceso de escritura.
        Sé recoger el nombre de usuario conectado a la red (con la API
GetUserName), pero no sé cómo comprobar si tiene acceso de escritura en la
B.D.
        Me gustaría que al mostrar un formulario que contiene 4 botones (2
de ellos son de mantenimiento), en ese momento comprobase si tiene acceso de
escritura, en caso afirmativo los habilitaría todos, sino, solo deberán
estar activos 2.
        Espero haberme explicado y ojalá me puedan ayudar.
        Muchas gracias.

        Saludos,

Pepi



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com