none
【入门问题】sa相当于OS中的哪个用户 RRS feed

答案

  • Maintenance plan generates log file after every run, those files have extension .txt and you must choose 'plan log file (x)' in cleanup task to delete them. 

    尝试过了,把清除维护选择为【维护计划文本报告】仍然删不了,我甚至在查询窗口里直接执行语句:

    命令成功完成!!!~可文件依然健在,真TM操蛋!!!

    后来在网上了解到有其它人遇到同样问题,有说法是xp_delete_file这个存储过程只支持特定文件格式的删除,如BAK,甚至把其它类型的文件后缀改成BAK也不能删除~总之问题多多,SQL搜索帮助也没找到关于该存储过程的官方文档,不折腾了,用powershell解决算了。谢谢rmiao,谢谢大家!

    • 已标记为答案 ahdung_AI 2011年9月26日 16:01
    2011年9月26日 16:00

全部回复

  • 你好

    SA = System Administrator

    在MSSQL 中的 Administrator

    應該和OS中的Administrator 用戶差不多 大

    但是SA 只能在Database 上用的

    在OS上用不到

    Please correct me if my concept is wrong

     


    Chi
    2011年9月22日 12:28
  • sa can do whatever you like in sql.
    2011年9月22日 13:56
  • 没有可比性。这个问题好比是:县长在县里的权利相当于省里哪个级别的官?县长在县里官最大,省长在省里官最大,但省长可以随时让县长靠边站。

    同样:

    定义上说 sa 是数据库级别上的超级用户。

    OS 中的System Admin (甚至级别更低的用户) 都可以随时终止 sa 的权利。

    2011年9月22日 14:57
    版主
  • 系统管理员
    2011年9月22日 15:43
  • 没有可比性。这个问题好比是:县长在县里的权利相当于省里哪个级别的官?县长在县里官最大,省长在省里官最大,但省长可以随时让县长靠边站。

    同样:

    定义上说 sa 是数据库级别上的超级用户。

    OS 中的System Admin (甚至级别更低的用户) 都可以随时终止 sa 的权利。

    Can't to stop sa if you don't have sysadmin rights.
    2011年9月22日 17:52
  • System Admin <> sysadmin
    2011年9月23日 0:09
    版主
  • 有趣的讨论

     

    1.如果windows账户能够停止sql 的服务,这个算不算终止sa的权利呢?

    2.sql的集成认证是可以指定任何一个windows账户作为sql的用户,并赋予sysadmin的角色,这个windows账户的确可以限制sa的行为,比如说禁用。

    3.一个说的是os,一个说的是sql的角色,system admin 当然不能是 sysadmin混为一团。


    family as water
    2011年9月23日 1:38
  • sa is builtin sql login (it's instance level super user not db level by the way), anyone can connect to sql server with it as long as know its pwd. Windows system admins can't disable sa if they don't have sql sysadmin rights, therefore we can't say windows system admin can disable sa. Only sql sysadmin can do that, then another member of sysadmin can enable it again. Lot of builtin sql features require sa even it's disabled (disable means you can use it to logon sql). So real power is in sysadmin's hand, that's why shouldn't put non-dba user into sysadmin role. 
    2011年9月23日 2:18
  • 呵呵,想不到这个入门问题大家都这么热心,感动&感谢!

    其实之所以有这个问题是因为我的有个作业A,所有者是sa,作用是【每晚导出一个txt文件到指定目录,并删除该目录下保存时间达X天的文件】~很典型的一个作业,这个作业是【维护计划】自动生成的,该【维护计划】中只有一个步骤,这个步骤是采用流程连接的方式设置的,第1个流程是导出文件,第2个流程是删除文件。

    结果是每晚都能正常导出文件,但就是不会删除过期文件,作业历史记录都是报告成功。

    该目录的NTFS权限如下图:

    留意administrator是用户而不是组,因为我不想其他管理组的用户动这个目录。详细权限如下:

    administrator和system = full;creator owner = 特别权限(创建者拥有他创建的东东的所有权限);everyone和users = 读取和运行。

    奇怪的是,另一个类似的作业B,导出目录与该目录有相同的ACL设置,只是所有者是另一个管理组的用户,作业B既能导出也能删除,真是让我费解,所以这才有了这个问题。

    sa也有操作文件和执行OS命令(例如xp_cmdshell)的时候,所以不能说sa与OS用户没可比性或相关性,问题是当sa执行OS操作的时候到底是以何种身份/权限进行?还请大大们不吝赐教,再次感谢大家热心回复!

    2011年9月23日 3:47
  • When job owner is sa, sql runs the job under sql agent service account. SO you have to make sure that account has all required file system permission.
    2011年9月23日 13:54
  • 不好意思我英语不怎么滴~我理解的意思是【当作业所有者是sa时,是以启动SQL代理服务的帐户执行该作业,所以必须确保该帐户具有所需的FS权限】~是这样吧?于是我检查了SQL代理的启动账户,如图:

    是LocalSystem,据我所知,localsystem就是OS的system,而该作业导出的目录,其ACL中system是具有完全控制权限的,如图:

    这样看来,问题似乎没有出在权限上。但这样一个典型的维护计划没理由配置错误,真是百思不得其解。anyway~谢谢rmiao耐心解释,学到了东西。

    2011年9月23日 14:29
  • 这是维护计划配置截图:

    真心希望能找出能导不能删的原因。

    2011年9月23日 14:30
  • What's your backup file's extension? Name them xxx.txt? Did you create sub-folder under e:\ahdung\errorstock for each db? If so, check 'include fisrt-level subfolder'.
    2011年9月23日 18:21
  • What's your backup file's extension? Name them xxx.txt? Did you create sub-folder under e:\ahdung\errorstock for each db? If so, check 'include fisrt-level subfolder'.


    没有,所有txt都在【e:\ahdung\errorstock】目录下,像这样的:

    维护计划设置的是删除早于50天的文件,很明显已经有不少文件存放超过50天,但任然健在~真是纠结

    2011年9月24日 9:37
  • Those look like plan's log files, should choose plan log file instead of backup file in maintenance cleanup task.
    2011年9月24日 21:12
  • Those look like plan's log files, should choose plan log file instead of backup file in maintenance cleanup task.

    我可以确定这些txt不是日志文件,的确是导出的文件,而维护计划里从截图也可看出删除的是【备份文件】而非【维护计划文本报告】~不知道我有没有理解错你的意思
    2011年9月26日 2:01
  • Maintenance plan generates log file after every run, those files have extension .txt and you must choose 'plan log file (x)' in cleanup task to delete them. 
    2011年9月26日 2:12
  • If you use maintenance plan do full (.bak) and log (.trn) backup, you need 3 maintenance cleanup task to delete .bak, .trn and .txt (plan's log file) files.
    2011年9月26日 2:14
  • Maintenance plan generates log file after every run, those files have extension .txt and you must choose 'plan log file (x)' in cleanup task to delete them. 

    尝试过了,把清除维护选择为【维护计划文本报告】仍然删不了,我甚至在查询窗口里直接执行语句:

    命令成功完成!!!~可文件依然健在,真TM操蛋!!!

    后来在网上了解到有其它人遇到同样问题,有说法是xp_delete_file这个存储过程只支持特定文件格式的删除,如BAK,甚至把其它类型的文件后缀改成BAK也不能删除~总之问题多多,SQL搜索帮助也没找到关于该存储过程的官方文档,不折腾了,用powershell解决算了。谢谢rmiao,谢谢大家!

    • 已标记为答案 ahdung_AI 2011年9月26日 16:01
    2011年9月26日 16:00