Sidebar

Este articulo explica el significado de SQL, así como las diferentes sentencias que lo conforman (DDL, DCL, DML), con una pequeña descripcíon de su uso y los permisos necesarios para poderlos ejecutar en SQL Server 2000.

¿Que es SQL?

Los comandos utilizados para acceder a la base de datos se conocen como SQL(Structured Query Language). Algunas veces puede ser que los hayas escuchado como sentencias SQL, pero el Structured Query Language es un estándar utilizado para usar en las bases de datos. SQL Server 2000 utiliza una versión ampliada de SQL llamada Transact-SQL. Este es utilizado para crear, mantener y accesar a los datos de la base de datos. Estos comandos pueden ser utilizados a través del analizador de consultas de SQL, la herramienta osql, o directamente desde una aplicación cliente.

Los responsables de definir los estándares de SQL son ANSI(American National Standards Institute ) e ISO(International Standards Organization). SQL Server 2000 soporte el estándar publicado en 1992, por esa razón algunas veces se refieren a el como SQL-92.

SQL es agrupado en 3 categorías:
DDL - Data Definition Language
Permite crear objetos en la base de datos, como tablas, vistas, store procedures, etc.
DCL - Data Control Language
Permite asignar permisos sobre las bases de datos y sus objetos.
DML - Data Manipulation Language
Permite acceder a los datos o modificaros.

Es recomendable no utilizar en nuestras aplicaciones Transact-SQL y en su lugar utilizar ANSI para que sea compatible con otros manejadores de bases de datos.

Sentencias DDL (Data Definition Language)
Las sentencias DDL son CREATE, ALTER y DROP. Siempre se usan estas sentencias junto con el tipo de objeto  y el nombre del objeto.

CREATE
Crea una base de datos o un objeto
ALTER
Modifica la estructura de una base de datos o de un objeto
DROP
Elimina una base de datos o un objeto

Los permisos necesarios para ejecutar estas sentencias son:
Pertenecer al roles sysadmin o dbcreator y db_owner, o a db_ddladmin.

Roles de Servidor
Descripción
sysadmin
Puede realizar cualquier actividad en SQL Server.
dbcreator
Puede crear, modificar y borrar una base de datos.

 

Rol de base de datos
Descripción
db_owner
Tiene todos los permisos en la base de datos
db_ddladmin
Puede usar todas las sentencias DDL, pero no usar GRANT, REVOKE o DENY

Es recomendable no utilizar diferentes cuentas para ejecutar sentencias DDL, ya que el performance de SQL Server se ve degradado, por eso es mucho mejor si todos los objetos tienen el mismo owner, si en cambio se tienen objetos con diferentes owners como por ejemplo el de una vista y una tabla, SQL Server debe de validar los permisos para ambos antes de que el usuario pueda acceder a la vista.

Sentencias DCL (Data Control Language)
Después de utilizar las sentencias DDL para crear objetos, la siguiente tarea es asegurarlos. Las sentencias DCL asignan permisos a usuarios en especifico o a roles de bases de datos.

GRANT
Asigna permisos a usuarios o roles para poder acceder a una base de datos o ejecutar sentencias SQL
DENY
Evita que un usuario o role ingrese a una base de datos o alguno de sus objetos o de ejecutar una o varias sentencias SQL.
REVOKE
Remueve un permiso que se le a asignado a un usuario o a un rol.

Los permisos para poder ejecutar estas sentencias son, pertenecer al grupo sysadmin o dbcreator y db_owner o db_securityadmin

Rol de base de datos
Descripción
db_securityadmin
Puede manejar todos los permisos, owners y roles

Sentencias DML (Data Manipulation Language)
Ahora que hemos creado objetos mediante sentecias DDL  y asignado permisos sobre estos objetos con sentencias DCL, ahora vamos a ver como trabajar con estos objetos

SELECT
Despliega información de una o varias tablas
UPDATE
Modificar uno o más registros de una tabla
DELETE
Eliminar uno o más registros de una tabla

Por default solo los miembros  de sysadmin o dbcreator, db_owner, db_datawriter o db_datareader pueden ejecutar sentencias DML, pero como se vio con las sentencias DCL, estos permisos puede ser otorgados a usuarios en especifico.

Rol de base de datos
Descripción
db_datareader
Puede seleccionar todos los datos de cualquier tabla en la base de dato.
db_datawriter
Puede modificar cualquier datos de cualquier tabla en la base de datos.

 


Search

Tips BD