设为首页 加入收藏

TOP

SQL 权限管理
2014-11-24 07:22:22 来源: 作者: 【 】 浏览:2
Tags:SQL 权限 管理

-========================

--== 步骤一:创建登录名==

--========================

USE Master

GO

-- 在控制面板中,创建Windows 受限用户MrTian,然后使用MrTian 用户登录Windows

-- MrTian 不能够连接SQL Server。

-- 切换回管理员身份登录Windows,执行以下代码。代码中Computer_Name 请替换为您的计算机名。

EXEC sp_GrantLogin 'Computer_Name\MrTian'

GO

-- 现在可以用MrTian 身份登录Windows ,登录后可以用Windows 身份验证的方式连接SQL Server 服务,但是无法使用任何数据库

-- 下面,以管理员连接SQL Server,然后创建登录

EXEC sp_AddLogin 'Kitty', '1234'

GO

-- 现在可以用Kitty 作为登录名连接SQL Server服务,但是无法使用任何数据库

--============================

--== 步骤二:创建数据库用户==

--============================

-- 假设有数据库ACCPTT,其中有表Student

-- 下面,将ACCPTT 数据库访问权限授予Kitty 和Computer_Name\MrTian

-- 请以管理员(sa 或Windows 管理员帐户)身份连接SQL Server,然后执行:

USE ACCPTT

GO

EXEC sp_GrantDBAccess 'Kitty', 'Kitty_DBUser'

GO

EXEC sp_GrantDBAccess 'Computer_Name\MrTian', 'MrTian_DBUser'

GO

-- 现在,可以使用这两个帐户展开数据库,但是仍然不能看到表

-- 如果执行查询,将返回:拒绝了对对象'Student' (数据库'master',架构'dbo')的SELECT 权限。

-- 注意报错信息不是找不到数据库对象,而是拒绝访问。

--==============================

--== 步骤三:为数据库用户授权==

--==============================

-- 请以管理员(sa 或Windows 管理员帐户)身份连接SQL Server,然后执行以下代码,

-- 将赋予Kitty_DBUser 的对Student 表的SELECT 权限

GRANT SELECT ON Student TO Kitty_DBUser

GO

GRANT SELECT ON Student TO MrTian_DBUser

GO

-- 现在,可以使用Kitty 登录后,使用ACCPTT 数据库,对Student 进行查询

-- 其它权限同理。

--====================================================================

-- 下面的代码删除刚才创建的所有权限和用户

--====================================================================

-- 先撤销数据库用户的SELECT 权限

DENY SELECT ON Student To Kitty_DBUser

GO

DENY SELECT ON Student To MrTian_DBUser

GO

-- 现在,我们撤销了Kitty 和Computer_Name\MrTian 这两个登录名在ACCPTT 数据库中对应数据库用户名(Kitty_DBUser 和MrTian_DBUser)的查询权限

-- 即,我们回到了步骤三之前的状态

-- 下面,我们再删除ACCPTT 数据库中Kitty 和Computer_Name\MrTian 这两个登录名的数据库用户名

USE ACCPTT

GO

Drop Schema Kitty_DBUser -- 删除步骤二创建数据库用户时自动创建的"架构(Schema)",关于架构的概念,不在本文讨论范围之内。

GO

Drop User Kitty_DBUser -- 删除数据库用户

GO

Drop Schema MrTian_DBUser

GO

Drop User MrTian_DBUser

GO

-- 现在,Kitty 和Computer_Name\MrTian 又只能连接SQL Server,但是不能使用任何数据库了。

-- 即,我们回到了步骤二之前的状态

-- 最后,我们删除Kitty 和Computer_Name\MrTian 这两个登录名

EXEC sp_DenyLogin 'Computer_Name\MrTian'

GO

EXEC sp_DropLogin 'Kitty'

GO

-- 全部还原

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据库权限 下一篇SQL Server 2005控制用户权限访问..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)