无法通过grails应用程序插入MSSQL
我无法让我的简单grails应用程序通过我创建的用户插入到我的表中,即使我能够在SQl management studio中很好地运行查询 我得到这个错误:无法通过grails应用程序插入MSSQL,sql,sql-server,grails,Sql,Sql Server,Grails,我无法让我的简单grails应用程序通过我创建的用户插入到我的表中,即使我能够在SQl management studio中很好地运行查询 我得到这个错误: The INSERT permission was denied on the object 'mini_user', database 'Mini_test', schema 'dbo' InvalidDataAccessResourceUsageException: could not insert: [com.grailsi
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 (?, ?, ?, ?, ?)];
我能够在ManagementStudio中运行上述查询,没有任何错误
这是我的Grails配置,尽管问题似乎出在SQL server端
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”提供的所有访问权限:
我不知道还能尝试什么。看起来我给了那个用户无限的访问权限,所以我不确定这些权限问题是从哪里来的 我注意到您没有在conf文件中指定数据库名称 这就是我的样子:
dataSource {
url = "jdbc:jtds:sqlserver://server1:1433;databaseName=MyDbName"
username = "user"
password = "*******Pass"
// logSql=true
}
此外,请确保已在服务器级别的安全性中设置了用户映射,而不仅仅是在数据库级别的安全性下设置了用户映射。我没有仔细查看权限。我检查了“db_denydatareader”和“db_denydatawriter”。非常简单…我在url字符串上将数据库名称指定为/Mini\u test。根据jtds文档,这似乎还可以。