如何定时设置某一用户的权限?

zzroom 2004-09-16 09:35:32
操作系统:WINDOWS 2000
数据库管理系统:SQL SERVER 2000 企业版

数据库名:dm
用户名:ttuser

我计划,周一至周五8:00-18:00,ttuser拥有dm的db_owner权限,其余时候只拥有public权限。
我要如何设置让它自动执行?
...全文
192 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
General521 2004-09-18
  • 打赏
  • 举报
回复
就照邹老师的做法做吧!
wxq1142 2004-09-17
  • 打赏
  • 举报
回复
最好给它一个单独的用户,这样比较安全。
zjcxc 2004-09-16
  • 打赏
  • 举报
回复
--上面的时间写错了,改一下


--创建作业(取消db_owner权限)
exec msdb..sp_add_job @job_name='取消db_owner权限'

exec msdb..sp_add_jobstep @job_name='取消db_owner权限',
@step_name = '权限设置',
@subsystem = 'TSQL',
@database_name='dm',
@command = 'exec sp_droprolemember N''db_owner'', N''ttuser''',
@retry_attempts = 5, --重试次数
@retry_interval = 5 --重试间隔

--创建调度
EXEC msdb..sp_add_jobschedule @job_name = '取消db_owner权限',
@name = '时间安排',
@freq_type=8, --4 每天,8 每周,16 每月
@freq_interval=62,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_recurrence_factor=1,
@active_start_time = 180000 --18点开始执行

-- 添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
@job_name = '取消db_owner权限' ,
@server_name = N'(local)'
zjcxc 2004-09-16
  • 打赏
  • 举报
回复

--创建作业(取消db_owner权限)
exec msdb..sp_add_job @job_name='取消db_owner权限'

exec msdb..sp_add_jobstep @job_name='取消db_owner权限',
@step_name = '权限设置',
@subsystem = 'TSQL',
@database_name='dm',
@command = 'exec sp_droprolemember N''db_owner'', N''ttuser''',
@retry_attempts = 5, --重试次数
@retry_interval = 5 --重试间隔

--创建调度
EXEC msdb..sp_add_jobschedule @job_name = '取消db_owner权限',
@name = '时间安排',
@freq_type=8, --4 每天,8 每周,16 每月
@freq_interval=62,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_recurrence_factor=1,
@active_start_time = 80000 --8点开始执行

-- 添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
@job_name = '取消db_owner权限' ,
@server_name = N'(local)'
zjcxc 2004-09-16
  • 打赏
  • 举报
回复
--用sql完成所有的处理任务就是:

--设置 SQL Agent 服务为自动启动
exec msdb..sp_set_sqlagent_properties @auto_start=1

--创建作业(赋予db_owner权限)
exec msdb..sp_add_job @job_name='赋予db_owner权限'

exec msdb..sp_add_jobstep @job_name='赋予db_owner权限',
@step_name = '权限设置',
@subsystem = 'TSQL',
@database_name='dm',
@command = 'exec sp_addrolemember N''db_owner'', N''ttuser''',
@retry_attempts = 5, --重试次数
@retry_interval = 5 --重试间隔

--创建调度
EXEC msdb..sp_add_jobschedule @job_name = '赋予db_owner权限',
@name = '时间安排',
@freq_type=8, --4 每天,8 每周,16 每月
@freq_interval=62,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_recurrence_factor=1,
@active_start_time = 80000 --8点开始执行

-- 添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
@job_name = '赋予db_owner权限' ,
@server_name = N'(local)'
zjcxc 2004-09-16
  • 打赏
  • 举报
回复
--赋予db_owner权限
use dm
go

exec sp_addrolemember N'db_owner', N'ttuser'
go

--取消db_owner权限
use dm
go

exec sp_droprolemember N'db_owner', N'ttuser'


--然后写两个作业定时执行它
yjdn 2004-09-16
  • 打赏
  • 举报
回复
用作业:
建作业:
企业管理器中,管理——》SQL SERVER代理——》作业——》鼠标右键新建作业——》常规页中输入名称——》步骤页中新建步骤、输入名称、加入SQL语句:exec 你的存储过程——》调度页中新建调度、输入名称,选择反复出现,更改时间——》OK

完了之后,若没有启动SQL Agent,则在服务管理器——》SQL Agent选上当启动OS时自动启动

再在企业管理器中,鼠标右键刚才建的作业——》启动作业——》OK
zjcxc 2004-09-16
  • 打赏
  • 举报
回复
设置一个作业,定时执行权限控制处理.

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧