登陆数据库用的是Windows身份,能否实现:如何用语句重新建立sa(假设sa已经删除),且依然是原sa权限。
请给出具体代码示例(30分)
另外还有一个问题,用sqlcmd如何实逻辑:先判断是否有sa用户,有则改密码,无则创建
可以用.bat文件和.sql文件配合实现(10分)

解决方案 »

  1.   

    新建立一个登录,赋SYSADMIN权限
      

  2.   


    是否是这样:
    sp_addrolemember SYSADMIN,'sa'
      

  3.   

    是sqlserver数据库吗 SqlServer里边可以建用户的 不用语句呀
      

  4.   


    客观因素要求只能用sqlcmd进行操作,所以需要用语句实现。
      

  5.   

    企业管理器
    -找到数据库
    -安全
    -登陆
    -点右键
     "新建帐户 "-权限分配为System   Administrator
      

  6.   

    先使用sp_addlogin添加登录   
    exec sp_addlogin '用户名','密码','默认数据库'  
    然后向该用户授予访问某数据库的权限,其实就是给该数据库添加用户   
    exec sp_grantdbaccess '用户名'  
      

  7.   

    sp_addlogin
    sp_addrole
    sp_addrolemember 
    grant all...
      

  8.   


    删除SA用户:
    修改方法需要利用的存储过程sp_configure,sp_configure显示或更改当前服务器的全局配置设置。
    语法:
    打开查询分析器,输入
    sp_configure [ [ @configname = ] 'name' ]
    [ , [ @configvalue = ] 'value' ]实例:
    sp_configure 'allow updates', 1
    go
    RECONFIGURE WITH OVERRIDE
    go
    你应该给我分……
      

  9.   

    如果是白天好好工作,如果是晚上回去洗洗睡。这些东西没必要倒置!
    到目前为止还没发现sa被删除的案例,希望你也不要发现。--判断sa是否存在
    select [name] from sys.server_principals where [name] ='sa'
    --修改code
    USE [master]
    GO
    ALTER LOGIN [sa] WITH PASSWORD=N'o my god'
      

  10.   

    CREATE LOGIN [sa] WITH PASSWORD=N'xxx', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    GO
      

  11.   


    丢了一条
    EXEC master..sp_addsrvrolemember @loginame = N'sa', @rolename = N'sysadmin'
    GO
      

  12.   


    如果不是喜欢教训别人,如果仔细看一下问题,我还可以再多给你一些分……总之,谢谢了
    我需要这样的逻辑:
    if(select 1 from master.sys.syslogins where name='sa') = 1
    print "有,执行修改"
    else
    print "木有,执行创建"
      

  13.   

    如果因为我的情绪影响了你,在此抱歉! 当然对事不对人,希望理解!USE [master]GO  IF exists (select 1 from master.sys.syslogins where name='sa')   ALTER LOGIN [sa] WITH PASSWORD = N'o my god' --修改后的密码

       ELSE      print '木有,执行创建'
      

  14.   

    哈哈,claro老师,谢谢!
    吃饭,回来结贴
      

  15.   


    1、c盘建立文件 test.sql,打开编辑,输入比如
    if exists(select 1 from tb)
    select 1111
    else
    select 2222
    2、c盘建立文件 test.bat,打开编辑,输入比如
    SQLCMD -E -ic:\test.sql -oc:\test.txt3、双击test.bat,即可得到test.txt,打开可以看到,比如
    1> 2> 3> 4> 5>              
     ----------- 
            1111 (1 行受影响)
      

  16.   

    按777提供的思路,bat方式:
    --将语句保存在C盘新建.bat中,双击执行,产生test文件为空表示修改,为“木有,执行创建”表示需要创建。
    --注意:bat中的语句必须处于一行,不能隔行。
    sqlcmd -d master -Q "IF exists (select 1 from master.sys.syslogins where name='sa')  ALTER LOGIN [sa] WITH PASSWORD = N'o my God' ELSE print '木有,执行创建'"   -oc:\test.txt
      

  17.   

    早知道多准备些分了,再次感谢所有回帖的兄弟。问题解决了,CSDN果然是人才济济啊。
      

  18.   

    The sa login account cannot be deleted or renameed, nor it can't be revoked  any permission.