接触的一个Erp软件,sql server数据库平台,用户验证应该是用sql server本身的验证,也就是说如果要添加erp 用户Testuser,就会在sqlserver登录中增加一个用户testuser和一个Testuser#,添加用户的时候需要用到sa的密码。添加后的用户对数据库都是public的权限,但是程序登录后却可以对数据库进行读写,我一开始猜测可能程序会记住sa的密码,后台所有的更新数据都是用sa来进行的,但更改sa密码后,系统运行还是正常的,那位大人给分析一下这是怎么回事啊。数据库的用户里只有dbo和我增加的用户,sqlserver登录的用户里有我增加的用户testuser,sa和testuser#,testuser为public权限。testuser#没有任何权限

解决方案 »

  1.   

    不需要啊,我是在企业管理器中更改的sa密码,不在程序的控制之下, 程序应该不能得到更改后的密码。更改后,无论是否关闭企业管理器,程序都能正确执行。
    sa的密码更改后,应该是立即起作用的,下一次连接就应该用新的密码了。
      

  2.   

    更改sa密码后,也试过重启sql服务,结果也是一样
      

  3.   

    看一下程序的数据链接字符串了,看一下是不是用sa 用户登录了,还有修改一下sa密码,再运行程序要是还能用,那就是说不是用sa链接的用户,有其它用户存在!
      

  4.   

    应该是写在ini文件中  
    你可以查看一下
      

  5.   

    数据库服务器就在我旁边,写在ini文件里可能性不大,因为它无法感知我改了sa密码啊。
    程序的连接字符串是看不到的,已经编译在exe文件里了。zsl5305256说的我都试过了。这个软件是infor公司的Visual Enterprise,不知道有没有兄弟接触过。
      

  6.   

    大家一定要注意啊,是cs结构,windows验证怎么可能啊,我的服务器是sqlserver验证的
      

  7.   

    对windows验证、sqlserver验证还不是很清楚我自己在用的是AD+windows验证学习
      

  8.   

    服务器设置为SQL server认证的时候,也可以使用windows用户登录的。
    仔细看一下就知道了,有一个bulittin/Administrator的SQL用户
    所以你应该看一下windows用户是不是多了几个,是不是Administrator组的
      

  9.   

    iamltd(妖)说的没错,服务器administrators组的成员的确可以存取所有数据库,但我检查过了,没有增加新的系统用户。
      

  10.   

    用事件查看器看到的是只有testuser#登录,没发现其他的用户,但数据照样能更新,太奇怪了
      

  11.   

    看一下testuser#到底有哪些权限
    或者public用户组的权限是不是改过
      

  12.   

    那程序就应该是用testuser#登陆的
    查看testuser#的权限吧
      

  13.   

    唉,这个testuser#没有任何权限,在server-》安全性-》登录中存在,无任何数据库访问权限。在数据库的用户中没有此用户的定义。 但是只要用程序建立用户,就会在server的登录中自动建立2个用户名,即本名和本名加#。不知道这2个之间有没有什么关系。另外,我查看了一下权限的定义,也是正常的,public只是对某些表和视图具有select权限,没有写的权限,对于存取过程没有任何权限。
      

  14.   

    没有数据库访问权限?
    看下是不是直接加了System Administrators角色的?
    这种用户我在测试的时候经常加,呵呵
      

  15.   

    TO:iamltd(妖) 
    我前面也说过了,没有加,如果服务器上突然多了一个用户出来,我肯定早就发现了
    有用过visual enterprise 的弟兄吗,一起来看一下啊
      

  16.   


    我是说看SQL的用户,有可能直接赋了System Administrator角色,就可以不用赋任何数据库的访问权限了。
      

  17.   

    也没有,我刚刚说过了,所有用户只有public的角色,而public的权限没有变化过
      

  18.   

    晕了,直接用profile跟踪,看看到底是哪个用户在执行查询语句。就不信还有什么东西能躲过这个
      

  19.   

    晕倒!
    sa密码与用户的登录密码不是一个概念啊!
    用户的密码一般会作为一个表保存起来,登录的时候程序根据这个用户分配的权限限定某些模块这个用户能用还是不能用。你要想用户可以到数据库当中看看有没有名字包含user的表,打开分析一下吧。
    而sa是数据库的系统管理员,它是专门做后台操作的。