I am trying to display opportunity share records in lwc data table, I am getting blank rows even though when i execute the query in the workbench, records are being returned with values.

Code below:
import {LightningElement, track, wire} from 'lwc';
import getOppdata from '@salesforce/apex/LWCExampleController.retriveOpportunities';
const columns = [
    {
        label: 'User',
        fieldName: 'UserOrGroupName',
        type: 'text',
    },
     {
        label: 'AccessLevel',
        fieldName: 'OpportunityAccessLevel',
        type: 'text'
    }
]
export default class OpptyAccountLWC extends LightningElement {
    @track data = [];
    @track columns = columns;

    @wire(getOppdata)
    opp({error, data}) {
        if(data) {

            let currentData = [];

            data.forEach((row) => {

                let rowData = {};

                rowData.User = row.UserOrGroup.Name;
                rowData.AccessLevel = row.OpportunityAccessLevel;
                //window.alert('########## '+row.UserOrGroup.Name );
                //console.log('########### '+ row.UserOrGroup.Name);

                currentData.push(rowData);
            });

            this.data = currentData;
        }
        else if(error) {
            window.console.log(error);
        }
    }
}

HTML:
<template>
    <lightning-card title="OpptyShareRecords">
        <lightning-datatable columns={columns} 
                            data={data} 
                            key-field="id"
                            hide-checkbox-column="true"
                            show-row-number-column="true"></lightning-datatable>
    </lightning-card>
</template>

Controller class:

public class LWCExampleController {    
    @AuraEnabled(cacheable=true)
    public static list<OpportunityShare> retriveOpportunities() {
        return [SELECT OpportunityAccessLevel,UserOrGroup.Name
                FROM OpportunityShare];
    }
}