数据MSSQL 2008: 删不掉的数据困扰(mssql2008删不掉)

Recently, some of our customers have encountered an annoying problem; the data in microsoft MSSQL 2008 cannot be deleted. Our customers have to find and delete a huge amount of data in their databases, but the data cannot be deleted for some reasons.

At first, we suspected that there was a constraint in the database or that the data was locked due to SQL server running a long time. But it turned out to be a permission issue. It seems that after switching from a conventional SQL login to a windows authenticated login, the database user no longer had delete permissions. Apparently, the users had delete permissions at some point in their lives and were now confused.

To solve this problem, we looked for anything that could be reset or changed, and it just so happened that there was a stored procedure that checks the permissions of the user’s default database. We ran the stored procedure and its output showed that the user’s default database had delete permissions.

We next checked to see if the database user had access to any other databases on the same server, and it turns out they did. However, these other databases did not have delete permissions set. So, we then set the permissions for those databases and ran the same stored procedure again and it showed that the user now had delete permissions on the other databases.

Finally, we changed the user’s default database to one of the databases they had access to, and this solved the problem. After this, the user had full delete permissions, which allowed them to delete the data in the database. Similarly, if the same database user had permissions in only one database, we would have to grant delete permissions for each other database.

We would like to share this experience and hope this information can help people that are in similar situations. For example, the following command can be used to grant delete permissions on the specified database for the specified user:

GRANT DELETE ON [Database_name] TO [username];

In short, Microsoft MSSQL 2008 may lead to data not being able to delete due to permission issues. If this happens, we can use the stored procedure to check user’s permission, and grant delete permission to the user if necessary.

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《数据MSSQL 2008: 删不掉的数据困扰(mssql2008删不掉)》
文章链接:https://zhuji.vsping.com/158140.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。