科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何修改SQL Server 2005的执行环境

如何修改SQL Server 2005的执行环境

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SQL Server 2005包含了EXECUTE AS语句,通过使用EXECUTE AS语句,您可以为批处理和过程转换执行环境,这样,调用该批处理或过程的用户就可以使用不同的权限来操作了。

作者:赛迪网 191831 来源:天新网 2008年3月25日

关键字: 数据库 Mssql SQL SQL Server

  • 评论
  • 分享微博
  • 分享邮件

以下的脚本语句创建了两个登录名和数据库的用户账户,注意,CHECK_EXPIRATION和CHECK_POLICY语句,这两条语句是SQL Server 2005中新出现的。这些语句告诉SQL Server不要对这个用户账户强制执行密码截止期限策略,同时也不要进行任何类型的密码策略检查,对于强制安全策略而言,这些是非常有效的方法。

  CREATE LOGIN [BaseUser] WITH PASSWORD=N'baseuser', 
  DEFAULT_DATABASE=[TRS], 
  CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
  GO 
  CREATE USER [BaseUser] FOR LOGIN [BaseUser] 
  GO 
  CREATE LOGIN [TableOwner] WITH PASSWORD=N'tableowner', 
  DEFAULT_DATABASE=[TRS], 
  CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
  GO 
  CREATE USER TableOwner FOR LOGIN TableOwner 
  GO

在SQL Server 2005中,模式不再是和数据库用户相同的事情了,对于所包含的对象而言,它处于完全不同的名称空间。用户和模式的分离是SQL Server 2005中的一大进步,这样做使对象的所有权可以分离,而且比SQL Server 2000更易于管理,以下的语句创建了我们将要使用的数据库模式:

  CREATE SCHEMA [TableOwnerSchema] AUTHORIZATION [TableOwner] 
  GO 
  Now I enable logins so they can be used: 
  ALTER LOGIN [TableOwner] ENABLE 
  ALTER LOGIN [BaseUser] ENABLE 
  GO 
  GRANT CREATE TABLE TO TableOwner 
  GO

首先,我使用了EXECUTE AS命令,我将当前的执行环境设定为TableOwner,在运行了这个命令之后,所有的权限评估将以TableOwner运行,而以前的系统管理员权限将不再适用。

EXECUTE AS USER = 'TableOwner' 
GO

运行这个语句就能够表明现在的执行环境是TableOwner:

  SELECT SESSION_USER 
  GO

这个脚本将在TableOwnerSchema的模式中创建一个名为MyTable的表格,因为我已经赋予了该用户CREATE TABLE 的权限,所以TableOwner可以执行这条语句。

  CREATE TABLE TableOwnerSchema.MyTable 
  ( 
  Field1 INT 
  ) 
  GO

当我运行REVERT语句的时候,可以在执行环境链中回退一步,在SQL Server 2005中,执行环境是可以嵌套的,所以如果您在同一个数据库连接中有很多用户在运行,您可能需要多次执行该语句以返回到原始的登录环境。

  REVERT 
  GO 
  SELECT SESSION_USER 
  GO

现在我要对新的表格进行快速选择以确认它的存在:

  SELECT * FROM TableOwnerSchema.MyTable 
  GO
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章