无法通过grails应用程序插入到MSSQL中

时间:2013-10-26 21:33:36

标签: sql sql-server grails

我无法让我的简单grails应用程序通过我创建的用户插入到我的表中,即使我能够在SQl管理工作室中运行查询就好了。

我收到此错误:

The INSERT permission was denied on the object 'mini_user', database     'Mini_test', schema 'dbo'

InvalidDataAccessResourceUsageException: could not insert: [com.grailsinaction.MiniUser]; SQL [insert into mini_user (version, date_created, password, profile_id, user_id) values (?, ?, ?, ?, ?)];

我可以在管理工作室中运行上述查询,没有任何错误。

这是我的Grails配置,虽然问题似乎在SQL服务器端。

dataSource {
    pooled = true
    driverClassName = "net.sourceforge.jtds.jdbc.Driver"
    dialect = "org.hibernate.dialect.SQLServerDialect"
}    

test {
    dataSource {

        url = "jdbc:jtds:sqlserver://127.0.0.1:1433/Mini_test;instance=SQLEXPRESS;user=tester2;password=tester2"
    }

我还将jtds-1.3.1.jar放在“lib”中(如果我能解决这个问题,我可能会切换到maven依赖项)并在buildconfig.groovy中放置一个运行时字符串。

  dependencies {

    runtime 'net.sourceforge.jtds:jtds:1.3.1'

}

这是我试图给“tester2”提供任何和所有访问权限:

enter image description here

enter image description here

enter image description here

enter image description here 我不知道还有什么可以尝试。看起来我已经给了该用户无限制访问权限,因此我不确定这些权限问题来自何处。

2 个答案:

答案 0 :(得分:1)

我注意到你没有在conf文件中指定数据库名称。

这就是我的样子:

dataSource {
        url = "jdbc:jtds:sqlserver://server1:1433;databaseName=MyDbName"
        username = "user"
        password = "*******Pass"

        // logSql=true
    }

此外,请确保已在服务器级别的安全性中设置用户映射,而不是仅在数据库级别的安全性下设置。

答案 1 :(得分:1)

我没有仔细查看权限。我检查了“db_denydatareader”和“db_denydatawriter”。非常简单...