使用存储过程演练SQL SEVER的三层安全模型

来源:互联网 发布:怎样判断两个矩阵相似 编辑:程序博客网 时间:2024/03/29 01:20
登录用户如果想使用数据库对象,必须要与数据库的用户进行关联.新建的登录用户dong默认与guest用户关联.新建的登录用户使用数据库对象(表,视图,存储过程,触发器等等)的时候,默认是用guest用户的权限使用的.
但我们也可以设定登录用户和具体的数据库用户关联例如例子中的'dong'关联.

print 'SQL Server的三层安全模型'
-------------------------------------------------------------------
print '1.访问服务器的权限'
print '1.1添加一个登录名dong'

EXEC sp_addlogin 'dong'

print '1.2空密码修改密码为123456'

EXEC sp_password NULL,'123456','dong'

print '1.3修改dong的默认登陆数据库为Northwind'

EXEC sp_defaultdb 'dong','Northwind'
GO
-------------------------------------------------------------------
print '2.访问数据库的权限'
--如果不执行这一步,默认登陆用户dong关联该数据库的guest用--户
--如果该数据库没有guest,则登陆用户dong不能访问数据库

print '2.1用登录名创建一个数据库用户dong'
print '2.2把登录名关联一个数据库用户才能访问数据库'

USE Northwind
EXEC sp_grantdbaccess 'dong'
GO
-------------------------------------------------------------------
print '3.访问数据库对象的权限'
print '3.1赋予数据库用户dong,能够查询Customers表的权限'

USE Northwind
GRANT SELECT
ON Customers
TO dong

print '3.2赋予数据库用户dong,拒绝查询Customers表的权限'

DENY SELECT
ON Customers
TO dong

print '3.3撤销数据库用户dong,查询Customers表的权限'

REVOKE SELECT ON Customers
TO dong

print '上面就是SQL SERVER的三层安全模型.即:服务器安全验证,数据库安全,以及数据库对象安全.'
GO
-------------------------------------------------------------------
print '4.删除一个登录名'
print '4.1先删除数据库中的权限'
USE Northwind
EXEC sp_revokedbaccess 'dong'
print '4.2删除登陆'
EXEC sp_droplogin 'dong'
GO
 

原创粉丝点击